Rails 3では、ユーザーがさまざまな種類のコンテンツ(メモ、写真、URLなど)を投稿できるユーザーコンテンツシステムをモデル化しようとしています。
Java / C#OOの観点からは、ユーザーとコンテンツアイテムを表すインターフェイス(たとえば、と呼ばれるもの)との間にポリモーフィックな関係を使用しますIUserContent
。
期待どおりに機能する例を見つけるのに苦労しています。これが最初に試したものです。つまり、ActiveRecordでのポリモーフィックアソシエーションの実装について混乱しています。
# user.rb model - includes...
has_many :notes, :as => :postable, :dependent => :destroy, :inverse_of => :postable
has_many :urls, :as => :postable, :dependent => :destroy, :inverse_of => :postable
has_many :photos, :as => :postable, :dependent => :destroy, :inverse_of => :postable
# url.rb ...
belongs_to :postable, :polymorphic => true, :inverse_of => :urls
# photo.rb
belongs_to :postable, :polymorphic => true, :inverse_of => :photos
# note.rb
belongs_to :postable, :polymorphic => true, :inverse_of => :notes
私はまだ見つけた例をたどっています。率直に言って、これはユーザーがコンテンツではなく、多形のターゲットであるように感じます。
私はこのようなものが欲しいと思います...
# within user.rb
has_many :postable, :as => :postable, dependent => :destroy, :inverse_of => :users
# photo.rb
# url.rb
# note.rb
# all have the following...
belongs_to :user, :polymorphic => true, :inverse_of => :postable
...正しい方向にいくつかのポインタを探しています。
ありがとうございました。