0

この 1 週間、Rails を学ぼうとしている過程で、Rails について多くのことを読みました。問題は、何かが必要なときに、どこで読んだか思い出せないことです! ハハ

ゲストと予約の 2 つのモデルがあります。ゲストには多くの予約があります。したがって、予約モデルには guest_id フィールドが含まれています。

すべての予約データとゲスト データを取得し、1 つのオブジェクトとしてビューに表示したいと考えています。これを行う簡単な解決策(Rails docで私が思うに)を見たことがあることを私は知っています。

現時点では、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 %>

しかし、リンクされたゲストテーブルも含めるにはどうすればよいですか?

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 に答える