2013-08-08 25 views
5

Grundsätzlich möchte ich die Möglichkeit hinzufügen, über Tags abzustimmen, also würde ich gerne eine Prioritätsspalte für das jeweilige Tag des jeweiligen Modells haben.Hinzufügen einer neuen Spalte zum Tag acts_as_taggable_on

Irgendwelche Ideen, wie man das macht?

Ich vermute, ich muss eine neue Migration machen, aber ich weiß nicht, wofür ich es machen soll. Was wäre die Migration?

Danke!

Antwort

4

Wie ich mich erinnere, acts_as_taggable erstellt eine Tabelle namens tags, so dass Sie auf diese Tabelle ein Feld hinzufügen:

rails g migration add_votes_to_tag votes:integer 

und fügen Sie Ihre Logik auf Tag zu stimmen.

P.S. Ich bin mir nicht sicher, ob ich deine Frage richtig verstanden habe.

+0

Das ist, was ich dachte, aber ist die andere Tabelle, die es erstellt, nicht die, die das Tag tatsächlich mit einem anderen Modell verbindet? Ich weiß nur nicht, welchem ​​die Spalte wirklich hinzugefügt werden soll. – bahudso

+0

Ja, es gibt eine Tabelle, die Tag mit Ihren Modellen verknüpft, aber Sie geben in dieser Tabelle keine Bewertung für Tag ein, diese Tabelle dient nur dazu, eine Beziehung zu erstellen. Wenn Sie Ihre Tags bewerten möchten, müssen Sie Stimmen in die Tag-Tabelle – rmagnum2002

+0

hinzufügen oder mehr beschreiben, was Sie tun möchten, vielleicht habe ich alles falsch verstanden. – rmagnum2002

0

Wenn Sie die regelmäßige Nutzung der Tag-Klasse zu erweitern, scheint der Fall zu sein, und einen Sonderfall für diese Tags erstellen, die Sie auf einer Hook-Methode aus dem Kern namens verlassen können gezählt werden muss [find_or_create_tags_from_list_with_context][1]

class Company < ActiveRecord::Base 
    acts_as_taggable_on :markets, :locations 

    def find_or_create_tags_from_list_with_context(tag_list, context) 
     if context.to_sym == :markets 
      MarketTag.find_or_create_all_with_like_by_name(tag_list) 
     else 
      super 
     end 
    end 
end 
Verwandte Themen