0

如果我把事情说错了,我只是开始与RoR如此裸露在一起。如何从深层嵌套关联中获取记录?

我有这3个模型为例。董事会,卡车,司机。

Here's a sketch of what I have

卡车有很多司机和司机所属的卡车。

然后我有一个董事会,董事会有卡车收集。

我似乎无法弄清楚的是如何通过电路板和卡车在前端获得驱动程序记录。

@boards = Board.all

但我不能做到这一点(每块内)board.truck.driver.first_name。我怎样才能访问卡车司机?

让我知道如果你们需要更多信息,谢谢!

回答

1

你做错了!作为卡车有很多司机,这是不行的board.truck.driver.first_name你应该做board.truck.drivers和循环遍历它像下面

<% board.truck.drivers.each do |driver| %> 
    <%= driver.first_name %> 
<% end %> 
+1

我更喜欢这种方法,我需要显示卡车的所有司机。谢谢。 –

1

根据你提到的,卡车有很多驱动程序。这意味着每辆卡车都会有一系列驾驶员。尝试做一些像board.truck.drivers.first.first_name(假设你想要第一个和当前唯一的驱动程序)。

+0

是啊!就是这样。我错过的理解是你必须调用'.first'才能真正获取记录?谢谢你的答案。 –

+0

如果您需要根据数据库字段选择显示哪个驱动程序,则还可以在'.first'之前执行'.where()'。 –

0

您还可以定义一个通过关联,所以board.drivers将成为一个有效的收集

Class Board 
    has_many :trucks 
    has_many :drivers, through: :trucks 

详情请参阅ActiveRecord::Associations