我正在铁路应用中工作,公司有很多订单。订单有一个名称就是这样。订单可能包含多个电视节目,广播位置和报纸展示位置,这些表格中的数据不一样,因此必须将它们分开。现在,如果订单has_many radio_placements,它将没有television_spots或newspaper_placements。我的问题是在模型上建立一个has_many关系是不好的做法,即使它不存在?,最好是让公司拥有多个电视节目和电视节目有多个电视节目?因此,公司拥有多个radio_orders和radio_order has_many radio_placements,等等。我认为第一个选项最初是干燥器,但是随着应用程序的增长以及我们对数据的更改,使用第二个策略可能会产生更清晰易懂的代码。
答案 0 :(得分:0)
拥有一个实际上没有任何模型关联的has_many关联并不是一种不错的做法。真正的问题是radio_placements
,television_spots
和newspaper_placements
应该与哪种对象类型相关联。如果它们实际上应该与Order
模型相关,那么将关联放在那里。根据我对您的问题/数据形状的理解,您似乎希望这些关系位于Order
模型上。如下所示:
class Company
has_many :orders
has_many :television_spots, through: :orders
has_many :radio_placements, through: :orders
has_many :newspaper_placements, through: :orders
end
class Order
has_many :television_spots
has_many :radio_placements
has_many :newspaper_placements
end
希望这有帮助。