【问题标题】:Using multiple has_many associations on one model在一个模型上使用多个 has_many 关联
【发布时间】:2014-11-12 16:03:26
【问题描述】:

我正在一个公司有_many订单的rails应用程序中工作。一个订单有一个名字,就是这样。顺序可以有_many_television_spots、radio_placements和newspaper_placements,这些表中的数据不一样,所以必须拆分。现在,如果一个订单有_many radio_placements,它将没有tvice_spots 或报纸_placements。我的问题是即使模型不存在 has_many 关系也是不好的做法?,让 Company have_many Television_orders 和 Television_order have_many Television_spots 会更好吗?因此,Company have_many radio_orders 和 radio_order have_many radio_placements 等等。我认为第一个选项最初是更干燥的,但是随着应用程序的增长以及我们对数据更改的处理,使用第二种策略可能会产生更清晰、更易于理解的代码。

【问题讨论】:

  • 很难读懂你的问题,使用短句并将代码提取到代码块中以便于阅读

标签: ruby-on-rails associations has-many


【解决方案1】:

拥有一个实际上没有关联任何模型的 has_many 关联并不是一个坏习惯。真正的问题是radio_placementstelevision_spotsnewspaper_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

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多