ユーザーが新しい予約レコードを作成するとき、入力されるデータの一部は電子メール アドレスです。この電子メール アドレスは、まだ存在しない場合に、新しいゲスト レコードを同時に作成するために使用されます。予約には、レコードの一部としてゲスト ID が必要です。
私のモデルでは、関係を次のように定義しました。
accommodations has_many bookings
guests has_many bookings
bookings belongs_to accommodations
bookings belongs_to guests
これは、BookingsController の作成アクションでこれまでに行ったことです。
...
def create
accommodation = current_user.accommodation
@booking = accommodation.bookings.build(post_params)
@guest = accommodation.guests.build(params[:email])
if @booking.save
flash[:success] = 'The booking has been added successfully.'
redirect_to :controller => 'bookings', :action => 'index'
else
render 'new'
end
end
...
私の質問は次のとおりです。
- 新しい予約にゲスト ID を含めるには、'build' を 2 回使用する必要がありますか?
- 電子メールを使用してゲストが既に存在するかどうかを確認するにはどうすればよいですか?
- ゲストをビルドするときに params[:email] を使用するのは安全ですか?