2012-03-27 9 views
0

私は多形になりたいタグモデルを持っていますが、例えば "video"というタグの5つのレコードを必要としません。さまざまなモデルでそれを使用することができます。私はそれについて、いくつかの質問を準備しましたが、それをうまく働かせる方法はまだありません。多形has_many:through in rails

だから私が持っている:

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

関連する問題