2009-11-16 2 views
1

acts_as_taggable을 사용하여 내 애플리케이션에 태그 클라우드를 생성하고 있습니다. 나는 acts_as_taggable 플러그인을 사용하는 'Question'이라는 모델을 가지고있다. 기본적으로 질문 모델의 태그를 필터링하고 싶습니다.acts_as_taggable_on_steroids를 사용하여 undefined_method 'tag_count'를 입력하십시오.

또한 '제목'모델이 있습니다. 따라서 주체와 질문의 관계는 주체에 많은 질문이 있고 질문은 주체에 속한 것입니다.

그래서 @subject.questions.tag_counts을 호출하면 정상적으로 작동합니다. 하지만 free_questions 내가 정의한 방법이다 @subject.free_questions.tag_counts, 전화 말하고, 그것은 #<Array>의 날에 "undefined_method tag_counts 수 있습니다. 기본적으로 내가 질문의 하위 집합에 대한 모든 태그를 찾고 싶어요.

아무도 제안 할 수 있습니다 ?를 named_scope 그래서 당신이 그것에 연결 메서드를 호출 할 수있는 해결 방법

답변

3

그것은 free_questions을 구현하는 데 도움이 될 수 있습니다

뭔가 같은 :.

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

는 다음을 수행 할 수 있습니다

@subject.questions.free 

나는이 잘 작동 할 수있다 생각한다. 당신이 (대신이 정의한 모델 방법을)를 named_scope을 사용하면 다시 모습과 Array 같은 역할을하는 프록시 객체를 가져

@subject.questions.free.tag_counts 

을 (acts_as_taggable와 경험이 많지 않아)하지만, ActiveRecord 연관 방법을 연결할 수 있습니다. @subject.questions에서 작동하는 모든 방법을 사용하려면 @subject.questions.free으로 전화해야합니다.

+0

안녕하세요. 먼저 명명 된 범위를 생각해야합니다! 건배! –