undefined Methode ‚tag_count‘ unter Verwendung acts_as_taggable_on Steroide
-
20-09-2019 - |
Frage
Ich bin mit acts_as_taggable
einen Tag-Cloud für meine Anwendung zu erstellen. Ich habe ein Modell ‚Frage‘, die die acts_as_taggable
Plug-in verwendet. Ich möchte im Grunde die Tags für die Frage Modell filtern.
Ich habe auch ein ‚Gegenstand‘ Modell. So die Beziehung zwischen den Themen und Fragen ist, dass ein Thema viele Fragen hat, und eine Frage gehört zu einem Thema.
Also, wenn ich @subject.questions.tag_counts
nennen, es funktioniert gut. Aber ich sage nennen
@subject.free_questions.tag_counts
, wo free_questions
ist eine Methode, die ich definiert haben, gibt es eine mir eine „undefined_method tag_counts
für #<Array>
. Ich möchte im Grunde alle die Tags für eine Teilmenge der Fragen.
vorschlagen kann jemand eine Abhilfe?
Lösung
Es kann helfen, free_questions
als named_scope
zu implementieren, so dass Sie Verband Methoden auf sie anrufen können.
So etwas wie:
class Question < ActiveRecord::Base
named_scope :free, :conditions => {:free => true} # conditions that make a question 'free'
end
Dann können Sie:
@subject.questions.free
und ich vermute, dies auch funktionieren kann. (Nicht viel Erfahrung mit acts_as_taggable
haben)
@subject.questions.free.tag_counts
Wenn Sie eine named_scope
(anstelle eines Modells Methode, die Sie definiert haben) ein Proxy-Objekt zurück, das aussieht und wirkt wie eine Array
, sondern ermöglicht es Ihnen, Kette ActiveRecord
Assoziation Methoden auf sie. Alle mögliche Methoden, die Arbeit an @subject.questions
sollten Sie in der Lage sein, auf @subject.questions.free
zu nennen.