如何从深层嵌套关联中获取记录?

时间:2017-06-09 16:53:30

标签: ruby-on-rails activerecord rails-activerecord ruby-on-rails-5

我有这三个模型。董事会,卡车,司机。

Here's a sketch of what I have

卡车有很多司机,司机属于卡车。

然后我有一块板,板上有卡车集合。

我似乎无法弄清楚如何通过电路板和卡车在前端获取驾驶员记录。

我有@boards = Board.all

但我不能这样做(在每个区块内)board.truck.driver.first_name。如何才能访问属于卡车的司机?

3 个答案:

答案 0 :(得分:1)

根据你提到的,TRUCK有许多驱动程序。这意味着每个TRUCK将拥有一系列驱动程序。尝试做board.truck.drivers.first.first_name之类的事情(假设您想要第一个和当前唯一的驱动程序)。

答案 1 :(得分:1)

你做错了!由于卡车有很多驱动程序,这不会有效board.truck.driver.first_name你应该board.truck.drivers并在下面循环播放

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

答案 2 :(得分:0)

您还可以定义直通关联,以便board.drivers成为有效的集合

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

有关详细信息,请参阅ActiveRecord::Associations