これは少し注意が必要です。さらに情報が必要な場合は、遠慮なく!
私には2つのモデルがStore
あり、Consumer
それは2つの方法でリンクされています。
1 /Store
とConsumer
同じモデルから継承しProfile
ます。これは、多くの属性(名前、場所、電子メール、Webページなど)を共有しているためです。RailsのARコードは次のとおりです。
class Profile << ActiveRecord::Base
# Attributes and validation rules go here.
end
class Store << Profile
end
class Consumer << Profile
end
これはよく知られている単一テーブル継承(STI)です。
Store
2 / STIに加えてConsumer
、多対多の関係によってリンクされています。
ストアには多くのクライアント(多くの消費者)がいます
消費者は多くの店舗のクライアントです
このリンク(ストア-コンシューマー)にはさらに多くの属性が必要なため、それらをリンクする追加のモデルを作成する必要がありますClient
。
これが私の最終的なARモデルです。
class Profile << ActiveRecord::Base
# Attributes and validation rules go here.
end
class Store << Profile
has_many :clients
end
class Consumer << Profile
has_many :clients
end
class Client << ActiveRecord::Base
belongs_to :store
belongs_to :consumer
end
問題
STIを使用してもstore_idとconsumer_idは作成されません...profile_idしかありません(実際のテーブルが1つあるためProfile
)。Client
では、 store_idとclient_idの両方を持つ正しい行をターゲットにするにはどうすればよいですか?
それを行う方法はありますか?前もって感謝します。