Rails如何在使用尚未存在的ID时确保我的AJAX正常工作

时间:2017-02-15 14:39:09

标签: ruby-on-rails ajax

我在应用程序控制器中设置了current_order,如下所示:

def current_order
  if user_signed_in?
    current_order = Order.where(customer_id: current_user.id, status: :open).first_or_initialize(status: :open)
  else
    current_order = Order.where(customer_id: guest_user.id).first_or_initialize(status: :open)
  end
end

我遇到的问题是,第一次向order_item添加order时,订单的id仍未定义。

当我第一次order_item时,如何确保AJAX正常工作?

1 个答案:

答案 0 :(得分:1)

如果您需要Order.id,必须先保存订单。您可以使用first_or_initialize

而不是first_or_create
def current_order
  if user_signed_in?
    Order.where(customer_id: current_user.id, status: :open).first_or_create
  else
    Order.where(customer_id: guest_user.id, status: :open).first_or_create
  end
end