ユーザー、製品、写真モデルの間に関係を築く必要があります。ユーザーは商品に写真を追加できます。したがって、ユーザーのhas_many
写真と製品のhas_many
写真がありますが、それぞれの写真belongs_to
は製品とユーザーの両方です。Railsでこれをどのように達成できますか?私が理解している限り、ポリモーフィックな関連付けでは、写真は製品またはユーザーにのみ属することができます。has_many_through
代わりに、ユーザーと写真の関係と製品と写真の関係に別々の関係を使用する必要がありますか?
1 に答える
2
同じモデル内に複数の belongs_to 属性を持つことができます。基本的に、belongs_to としてマークされたモデルは、has_many でマークされたモデルへの外部キーを保持します。
class MyModel < ActiveRecord::Base
belongs_to :other_model1
belongs_to :other_model2
end
以下で述べたようにポリモーフィックアソシエイトを使用したい場合は、これらの線に沿ってそれを行うことができます
class Photos < ActiveRecord::Base
belongs_to :imageable, :polymorphic => true
end
class Users < ActiveRecord::Base
has_many :photos, :as => :imageable
end
class Product < ActiveRecord::Base
has_many :photos, :as => :imageable
end
この場合、 Photos クラスを再訪する必要なく、 has_many :photos, :as => :imageable 属性を追加するだけで関係を作成できます。
于 2012-11-19T16:51:04.917 に答える