2009-11-16 3 views
1

Я использую acts_as_taggable, чтобы создать облако тегов для моего приложения. У меня есть модель «Вопрос», которая использует плагин acts_as_taggable. Я в основном хочу отфильтровать теги для модели вопроса.undefined_method 'tag_count' using actions_as_taggable_on_steroids

У меня также есть модель «Тема». Таким образом, отношение между субъектами и вопросами заключается в том, что у субъекта много вопросов, и вопрос относится к предмету.

Так что, когда я звоню @subject.questions.tag_counts, он отлично работает. Но сказать, что я называю @subject.free_questions.tag_counts, где free_questions это метод я определил, это дает мне «undefined_method tag_counts для #<Array>. Я в принципе хочу найти все теги подмножества вопросов.

Кто-нибудь может предложить ? обходной путь

ответ

3

Это может помочь реализовать free_questions как named_scope, так что вы можете вызывать методы ассоциации на него

Что-то вроде:.

class Question < ActiveRecord::Base 
    named_scope :free, :conditions => {:free => true} # conditions that make a question 'free' 
end 

Тогда вы можете:

@subject.questions.free 

, и я подозреваю, что это может работать. (Не имеют большой опыт работы с acts_as_taggable)

@subject.questions.free.tag_counts 

При использовании named_scope (вместо метода модели вы определили), вы получите обратно прокси-объект, который выглядит и действует как Array, но позволяет вам цепочки ActiveRecord методов ассоциации. Любые методы, которые работают на @subject.questions, вы должны иметь возможность позвонить по телефону @subject.questions.free.

+0

Привет, большое спасибо! Должен был подумать о названных областях раньше! Ура! –

 Смежные вопросы

  • Нет связанных вопросов^_^