Ruby on rails 连接两个不相关模型的适当关联是什么
我有两种型号,Ruby on rails 连接两个不相关模型的适当关联是什么,ruby-on-rails,Ruby On Rails,我有两种型号,FlyerItem和Product。如果你想到一个电子商店的传单,它可能会显示一台正在出售的电视。对于这种特殊情况,我假设一个传单项目宣传一种产品 我已经为传单项目定义了如下模型 class FlyerItem < ActiveRecord::Base has_one :product end class CreateFlyerItems < ActiveRecord::Migration def change create_table :flyer_
FlyerItem
和Product
。如果你想到一个电子商店的传单,它可能会显示一台正在出售的电视。对于这种特殊情况,我假设一个传单项目宣传一种产品
我已经为传单项目定义了如下模型
class FlyerItem < ActiveRecord::Base
has_one :product
end
class CreateFlyerItems < ActiveRecord::Migration
def change
create_table :flyer_items, :primary_key => :flyer_item_id do |t|
t.references :product
end
end
end
<% FlyerItem.find do |item| %>
<p><%= item.product %></p>
<% end %>
这是意料之中的,因为产品实际上与传单项目无关,所以产品表不应该也不应该有该列
我真正想说的是
从传单项目中选择*,其中传单项目.product\u id=产品.product\u id
我会在这里使用什么类型的关联?关联是正确的方法吗
传单必须有一个产品,但产品不一定要分配给任何传单。而不是
有一个您想要的属于。属于\u to
关联方法位于具有外键列的类上。在关联的另一端,您可以根据需要使用has\u many
或has\u one
class FlyerItem < ActiveRecord::Base
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :flyer_items
end
class FlyerItem
而不是拥有您想要的所属的一个。属于\u to
关联方法位于具有外键列的类上。在关联的另一端,您可以根据需要使用has\u many
或has\u one
class FlyerItem < ActiveRecord::Base
belongs_to :product
end
class Product < ActiveRecord::Base
has_many :flyer_items
end
class FlyerItem
谢谢!我想在这种情况下,用自然语言来思考是行不通的,因为我在想“一个产品有很多传单是没有意义的”……但是这些是表格之间的关系,所以我应该记得这样想。我花了一些时间来适应它的“语言”方面,但它确实变得容易了。我发现首先考虑相反的关系很有帮助,即不包含外键的关系。在您的情况下,这就是产品。一个产品“有很多传单”,一个用于所有节日和销售。你的解释将更准确地表示传单项目和产品之间的关系。在这种情况下,“有很多”是很有道理的。谢谢!我想在这种情况下,用自然语言来思考是行不通的,因为我在想“一个产品有很多传单是没有意义的”……但是这些是表格之间的关系,所以我应该记得这样想。我花了一些时间来适应它的“语言”方面,但它确实变得容易了。我发现首先考虑相反的关系很有帮助,即不包含外键的关系。在您的情况下,这就是产品。一个产品“有很多传单”,一个用于所有节日和销售。你的解释将更准确地表示传单项目和产品之间的关系。在这种情况下,“有很多”是完全有道理的。