我有以下型号:
class Aircon < ActiveRecord::Base
belongs_to :shop
belongs_to :brand
belongs_to :power
accepts_nested_attributes_for :shop, :brand, :power
end
class Shop < ActiveRecord::Base
has_many :aircons
has_many :brands, :through => :aircons
has_many :powers, :through => :aircons
end
class Brand < ActiveRecord::Base
has_many :aircons
has_many :shops, :through => :aircons
has_many :powers, :through => :aircons
end
class Power < ActiveRecord::Base
has_many :aircons
has_many :shops, :through => :aircons
has_many :brands, :through => :aircons
end
问题1
如您所见,每两个模型之间存在适当的关联。一般来说,只要有意义,我认为这样做并不是一个坏主意。你觉得怎么样?
问题2
现在,我想添加另一个模型Model
,并设置以下关联:
class Model < ActiveRecord::Base
belongs_to :brand
end
class Brand < ActiveRecord::Base
...
has_many :models
end
Model
和Aircon
之间的适当关联是什么?
问题3
您会定义以下关联:
Model
和Shop
Model
和Power
如果是,那什么类型的关联?
答案 0 :(得分:2)
我记得Model可能会被保留。您可能必须使用Make。
Q1 在Rails中以两种方式链接模型是最佳实践。
Q2 型号:has_many =&gt; :aircons
空调:belongs_to =&gt; :模型
Q3 我不会让Power成为一个模特。真的是空调的一个属性。我猜测Air的功率是BTU或冷却瓦特。 Aircons所拥有的东西。
然后你会说Aircons.find_by_power(500..1000)找到所有拥有500到1000力量的Aircons