Rails has_many通过:关联或简单的has_many / belongs_to关联

时间:2014-08-26 20:56:46

标签: ruby-on-rails-3 activerecord associations

我已经有一段时间了,因为我已经使用了联接表,所以我希望能够根据最佳实践使用我的记忆。

我有一个Rails 3.2.19应用程序,它有一个Unit模型,我将添加一个维护模型。我们的想法是创建一个资源来为每个单元添加维护记录。因此,例如当轮胎旋转或更换机油时,会创建维护记录,并将该单元分配给该维护记录。

我希望能够遍历视图中的每个维护记录,显示单元名称,维护类型以及执行维护的详细信息。

我不确定通过协会做到这一点的最佳方法。这是我最初的想法:

unit.rb

has_many :maintenances 

maintenance.rb

attr_accessible :unit_id
belongs_to :unit

这应该允许我遍历每个维护对象并显示特定单元的记录。但有些事情似乎并不合适。我想知道我是否需要设置一个连接表并执行has_many:就像这样。

unit.rb

has_many :unit_maintenances
has_many :maintenances, through: :unit_maintenances

maintenance.rb

has_many :unit_maintenances
has_many :units, through: :unit_maintenances

unit_maintenance.rb

attr_accessible :maintenance_id, :unit_id
  belongs_to :maintenance
  belongs_to :unit

我有点不确定我是否会在这里过火,如果我甚至需要一个连接表,考虑到将有多个维护记录,每个记录分配一个单元。我认为基本的has_many和belongs_to关联会起作用,但我也想知道我是否需要连接表。

我也希望能够通过卡车查看所有维护记录,在视图中通过卡车搜索,并在满足特定阈值时设置警报(例如oil_change_mileage> 5000)。

如果我能澄清我在这里尝试做什么,请告诉我。但基本上我是为每个单元设置维护记录,这样我们就可以记录所做的事情,并希望将其构建成更强大的东西。

0 个答案:

没有答案