2010-02-18 17 views
9

Spędziłem cały swój czas wczoraj próbując uruchomić WSZYSTKIE wtyczki tagujące DOWOLNE Railsy. Choć instalacja była prosta, muszę powiedzieć, że ilość dokumentacji na temat korzystania z któregokolwiek z tych wtyczek była fatalna w najlepszym ...Dodawanie wtyczek do tagowania wtyczek do pracy sprawia, że ​​Hulk-zły

Dla przypomnienia, próbowałem:

is_taggable acts_as_taggable_on acts_as_taggable_on_steroids acts_as_taggable_redux

W każdym przypadku dokumentacja składał się z mniej więcej tak:

  1. zainstalować
  2. Nieokreślona magia < --- (Tu się przewróciłem, co mam umieścić w moich modelach, widokach i kontrolerach, aby Twoja niesamowita wtyczka działała? Proszę powiedz mi!)
  3. Sprawdź wszystkie te fajne funkcje!

Z wszystkich wtyczek, ja skończyło się radzenia sobie z błędami, jak:

NoMethodError in ItemsController#create undefined method `tag_list=' for #<Item:0x47fe848> 

Spojrzałam kwestii poruszonych na stronach internetowych odpowiednich wtyczki i okazało się, że na pewno nie jestem jedynym jeden z tymi problemami. Jednak wsparcie/wyjaśnienie autora nie było dostępne, mimo że większość z tych kwestii została podniesiona jakiś czas temu.

Rozumiem, że gdybym był jakimś guru Railsów, prawdopodobnie mógłbym użyć wtyczki do działania. Ale ja nie jestem. W mojej frustracji zdecydowałem się po prostu wdrożyć własną implementację tagowania, która wydaje się głupia, biorąc pod uwagę, że istnieje wiele wtyczek do tagowania dostępnych tam ...

Muszę również powiedzieć, że jestem trochę zaniepokojony, że większość z tych wtyczek nie były przez jakiś czas utrzymywane. Zastanawiam się, czy zostaną one przeniesione do Rails 3.

Jeśli ktoś wie o wtyczce do tagowania dla Railsów, która naprawdę działa i jest łatwa do wdrożenia, proszę dać mi znać (i jeśli mógłbyś wskazać mi Przyzwoity tutorial dam wam moją dozgonną wdzięczność, a także niesamowite kawałki puchu, które znalazłem w mojej kieszeni właśnie wtedy ...)

W przeciwnym razie niech to będzie zarzut ze strony wszystkich programistów początkujących/średnio zaawansowanych Railsów bogowie Railsów, którzy tworzą i utrzymują wtyczki ... "Kochamy twoją pracę, ale proszę, podaj więcej dokumentacji!"

+2

+1 za ... "sprawia, że ​​Hulk-zły". –

+1

Wpisałem coś podobnego do Google z wściekłości i zaśmiałem się, kiedy to dostałem. Dziękuję za to pytanie. –

Odpowiedz

9

Użyłem mbleigh's acts-as-taggable-on i podstawowa procedura idzie:

  1. Dodaj config.gem "acts-as-taggable-on" do environment.rb
  2. Run rake gems:install
  3. Run script/generate acts_as_taggable_on_migration
    • robić żadnych dostosowań na migracji, który może Cię chcesz (prawdopodobnie nie będziesz tego potrzebować).
  4. Uruchom migrację rake db:migrate
  5. Dodaj acts_as_taggable_on :your_desired_tag_names do oznakowanego modelu (liczbę mnogą).
    • tj. Model zdjęcia ma tag :colors.
    • Jeśli otrzymujesz numer NoMethodError, możesz może pominąć ten krok.
  6. Aby ustawić modele tagów, użyj photo.color_list = 'abc, 123, def, 456'
  7. zapisać model: photo.save
  8. Lista tagi: photo.colors
    • Być może trzeba odświeżyć model z bazą danych dla metody na photo.colors być dostępnym.

Zapoznaj się z acts-as-taggable-on readme uzyskać dalsze informacje/przykłady.

+0

Dziękuję życzliwy panie! To zadziałało ... Z jakiegoś dziwnego powodu, kiedy próbowałem tej wtyczki wczoraj, nie rozumiałem kiedy próbowałem dodać act_as_taggable_on: tags w modelu. Rzuciło szalone błędy i nie mogłem przejść przez ten punkt ... Nie wiem co, nie wiem jak. Ale działa teraz i jestem naprawdę wdzięczny za twoją pomoc :) –

0

Szalony świat!

I udało się również uzyskać acts_as_taggable_on_steroids pracy dzisiaj ...

Brakujące ogniwo było to, że trzeba było dodać do ApplicationHelper:

obejmują TagsHelper

ten został wymieniony w readme, ale tylko w sekcji "chmury tagów", więc nie było jasne, że musisz ją dodać do którejkolwiek metody, która ma być rozpoznana w pierwszej kolejności ...

+0

Twój link jest zepsuty. –

+0

Tak, niestety wygląda na to, że autor postu usunął ich starą platformę blogową i posty. Sprawdziłem, ale też nie mogłem znaleźć cache google ... Na razie usunąłem link, dziękuję za wskazanie –