Когда пользователь создает новую запись о бронировании, часть введенных данных является адресом электронной почты. Этот адрес электронной почты используется для создания новой записи гостя одновременно, если они еще не существуют. При бронировании должен быть идентификатор гостя как часть записи.Rails 4 - Строительство нескольких отношений
В моей модели я определил отношения так:
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
...
Мои вопросы:
- Должен ли я использовать 'build' дважды, так как я хочу, чтобы новое бронирование имело идентификатор гостя?
- Как проверить, существует ли гостевая система с помощью электронной почты?
- Безопасно ли/безопасно использовать параметры [: email] при создании гостя?
И почему новый гость может отличаться от текущего пользователя, так это то, что он может заказать кого-то еще? – depa
пользователи и гости разные - пользователи создают заказы от имени гостей – tommyd456