0

在过去的一周里,我在尝试学习 Rails 的过程中阅读了很多关于 Rails 的内容。问题是当我需要一些东西时,我发现很难回忆起我在哪里读过它!哈哈

我有两个模型:Guest 和 Booking,其中 Guest 有_many Bookings。因此 Booking 模型包含一个 guest_id 字段。

我想检索所有预订数据和客人数据并在视图中显示为一个对象。我知道我已经看到了一个简单的解决方案(我认为在 Rails 文档中)就是这样做的。

目前我在我的 BookingsController 中执行以下操作:

@bookings = Booking.all

在我的相关观点中,我有:

<% @bookings.each do |booking| %>
  <p><%= booking.id %></p>
  <p><%= booking.email %></p> //this does not work as email is in guests table!!!
<% end %>

但是我怎样才能获得链接的 Guest 表呢?

4

2 回答 2

2

如果您的预订属于客人

class Booking < ActiveRecord::Base
  belongs_to :guest
  ...
end

您可以先包含来宾以避免n+1 查询

@bookings = Booking.includes(:guest).all

然后在视图中,遍历关联

<% @bookings.each do |booking| %>
  <p><%= booking.id %></p>
  <p><%= booking.guest.email %></p>
<% end %>
于 2013-09-08T08:56:49.600 回答
1

在您的预订控制器中:

@bookings = Booking.includes(:guest).all

于 2013-09-08T08:55:54.783 回答