2012-03-27 3 views
0

나는 다형성을 갖기를 원하는 태그 모델을 가지고 있지만, 예를 들어 "비디오"태그에 5 개의 레코드를 원하지 않는다면, 태그를 한 번 만들고 싶습니다. 다양한 모델에서 사용할 수 있습니다. 그 일에 대해 몇 가지 질문을 준비했지만, 어떻게 작동하게하는지 잘 모르겠습니다.다형성 has_many : 레일을 통해

은 그래서있어 : 읽기

class Tag < ActiveRecord::Base 
    belongs_to :tagable, :polymorphic => true 

end 

class Post < ActiveRecord::Base 
    has_many :tags, :through => :tag_assignments 

end 

class TagAssignment < ActiveRecord::Base 
     has_many :tags, :as => :taggable 

end 

일을해야 그 날 것으로 보인다,하지만 ... 모든 여기 questions I 내가 함께 묶는 어딘가에 :source => 옵션이 필요하다는 것을 알고있다. 그러나 나는 단지 exac을 따르지 않고있다. 그것을 할 수있는 방법. 누구든지 도와 줄 수 있습니까?

답변

3

당신은 다음과 같은 모델을 다시 실행해야합니다 : 당신은 사용을 고려해야합니다

post.tags 

을 : 이제 다음과 같이이 태그를 얻을 수있는 게시물을 주어진

class Tag < ActiveRecord::Base 
    has_many :tag_assignments 
end 

class TagAssignment < ActiveRecord::Base 
    belongs_to :tagable, :polymorphic => true 
    belongs_to :tag 
end 

class Post < ActiveRecord::Base 
    has_many :tag_assignments, :as => :tagable 
    has_many :tags, :through => :tag_assignments 
end 

당신의 유스 케이스를위한 acts-as-taggable-on 보석.

+0

그래, 중간 테이블은 다형성 테이블입니다. 말이된다. – Slick23

관련 문제