#ruby #ruby-on-rails-5
#ruby #ruby-on-rails-5
Вопрос:
Я создаю сайт электронной коммерции на rails (я каким-то образом убедил себя, что это хорошая задача, ха-ха), и теперь у меня возникла проблема, когда кнопка «редактировать / подтвердить заказ», которая появится, как только пользователь нажмет «добавить в корзину», больше не появляется, и когда я использую ее raiseпоказывает, что order_id больше не сохраняется. Я не могу найти проблемы с моим методом создания, почему это так
def create
if params[:order_sauce][:order_id].blank?
order = Order.create(state: 'pending')
session[:order_id] = order.id
order_sauce = OrderSauce.new(order_sauce_params)
order_sauce.order = order
order_sauce.save
else
OrderSauce.create(order_sauce_params)
end
redirect_back(fallback_location: order_sauces_path, notice: "succesfully added to cart")
end
def order_sauce_params
params.require(:order_sauce).permit(:sauce_id, :quantity, :order_id)
end
Похоже, что order_id больше не генерируется, очевидно по;
<% if session[:order_id] %>
<%= link_to 'Edit/Confirm Order', edit_order_path(session[:order_id]), class: "checkout" %>
<% end %>
больше ничего не возвращает
Комментарии:
1. Некоторые мысли: работает ли order = Order.create(состояние: ‘ожидание’)? Если нет (и это был мой код) Я бы проверил, изменились ли проверки для Order в последнее время. Вы что-нибудь изменили в том, как работают сеансы / файлы cookie в последнее время? Раздел else в
def create
не установленsession[:order_id]
, может ли это быть проблемой?2. Большое тебе спасибо, Бен, это была проблема с моими проверками! Мне нужно указать проверки, используя on: :updates , как указано в simply validates :variable, presence: true 🙂 Спасибо за помощь!