2009-08-14 13 views
1

私は投稿、ページ、写真のモデルを使ったブログアプリを書いています。これらのモデルのいずれかにリンクされているカテゴリモデルがあります。したがって、カテゴリにはさまざまな種類のアイテムが含まれている可能性があります。すべてのアイテムには1つのカテゴリしかありません。Rails多態性 'backwards'

これは、結合テーブルで一般的なタグ付けパターンを使用して実装できますが、すべてのサブジェクトがカテゴリのみを持つことができるようにしたいと考えています。

これをRailsに実装するにはどうすればよいでしょうか?

答えて

4

さて、私は、私はそれを持っていると思う:

class Post < ActiveRecord::Base 
    has_one :categorization, :as => :categorizable 
    has_one :category, :through => :categorization 
end 

class Category < ActiveRecord::Base 
    has_many :categorizations, :dependent => :destroy 
end 

class Categorization < ActiveRecord::Base 
    belongs_to :category 
    belongs_to :categorizable, :polymorphic => true 
end 

今、私は推測する...様々なモデルがカテゴリを持つことができますが、各インスタンスは一つだけのカテゴリを持つことができます。

+0

優れています。私は机の上で頭を叩いてこれを解決しようとしています。ありがとう! – Jurgen