我正在铁路上做一个应用程序,您可以在其中访问餐馆并从他们提供的盘子上订购。我现在想做的是为一个名为“ Cart”的购物车创建了一个支架,我想在创建订单时将其分配给它(也是一个支架)。
应该是当您完成购物车并按“继续订购”(views / cart / show.html.erb)时,会将您重定向到new_order_path,询问您其他人的其他属性,例如地址,以及付款方法。当您在创建订单时可以分配您所在的购物车时,我感到非常困惑。
而且,我已经在cart.rb上拥有了这个:
class Cart < ApplicationRecord
belongs_to :order
这在order.rb上:
class Order < ApplicationRecord
belongs_to :user
has_one :cart
(更新)我想在您提交其他参数以完成表单上的订单时分配购物车,方法是:
<%= form_with(model: order, local: true) do |form| %>
.
.
.
<div class="actions">
<%= form.submit do order.asign(Cart.find(session[:cart_id])) %>
</div>
<% end %>
但是它不起作用
答案 0 :(得分:0)
在您的show.html.erb
文件中,更改:
<p>Total: <%= order.cart.total_price %></p>
收件人:
<p>Total: <%= @order.cart.total_price %></p>
然后在show
的{{1}}动作中做到:
OrdersController
我已经假设您正在def show
@order = Order.find(params[:id])
end
在没有有效的params[:id]
对象连接到cart
之前,您将继续收到遇到的错误。
要解决此问题,请在order
中进行以下操作:
show.html.erb
如果没有与<p>Total: <%= @order.cart.total_price || 0 %></p>
关联的total_price
,它将0
显示为cart