2017-02-15 46 views
0

,當我的AJAX的作品我有一個建立在應用控制器這樣一個current_order的Rails如何確保使用的ID,這不是尚未有

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_itemorder第一次,訂單的id仍未定義。

如何確保AJAX在我的第一個order_item上工作?

回答

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 
+0

謝謝你,工作。這會導致訪客用戶在數據庫中留下未使用的訂單時出現問題。我想我寧願沒有這個。那麼他的會議結束了嗎? –

+0

這取決於您是否要跟蹤訂單。如果你不這樣做,你可能會在幾天後使用rake任務或其他東西刪除訂單 –

+0

這就是我的想法。所有狀態爲「open」的訂單應在三天後刪除。我應該這樣做。你說的耙子任務?無論如何,我會研究它。再次感謝。 –

相關問題