Rails - 从多个表中检索数据

时间:2013-09-08 08:53:21

标签: ruby-on-rails associations

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

我有两种模式:访客和预订,其中包括Guest_many预订。因此,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表呢?

2 个答案:

答案 0 :(得分:2)

如果您的预订属于客人

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

您可以先包含访客以避免n+1 queries

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

然后在视图中遍历关联

<% @bookings.each do |booking| %>
  <p><%= booking.id %></p>
  <p><%= booking.guest.email %></p>
<% end %>

答案 1 :(得分:1)

在您的预订控制器中:

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