У меня есть продукт.
У меня есть заказ.
У меня есть резервирование между ними.Рельсы сначала или инициализировать не работает
Всякий раз, когда я делаю заказ от продукта до заказа, он сохраняет новый номер.
Он должен:
- Сохранить новый заказ, когда это первый сделал из этого продукта.
- Не делайте новое бронирование, но найдите и перезапишите старый, если продукт уже забронирован один раз.
- Если изделие уже заказано в заказе, но никаких изменений не произведено, транзакции с базой данных не производятся.
def create
@order = current_order
@booking = @order.bookings.where(product_id: params[:product_id]).first_or_initialize
product = @booking.product
if @booking.new_record?
@booking.product_name = product.name
@booking.product_price = product.price
else
@booking.product_quantity = params[:product_quantity]
@booking.save
@order.sum_all_bookings
@order.save
end
не работает.
Вслед работали:
def create
@booking = @order.bookings.find_by(product_id: params[:booking][:product_id])
if @booking
@booking.product_quantity = params[:booking][:product_quantity]
@booking.save
else
@booking = @order.bookings.new(booking_params)
@product = @booking.product
@booking.product_name = @product.name
@booking.product_price = @product.price
end
@order.save
end
Видимо мне нужно, чтобы захватить Params, добавляя [:booking]
как в params[:booking][:product_id]
. Кто-нибудь знает почему?
Каким-то образом параметры не проходят. –