【发布时间】:2019-12-11 01:46:52
【问题描述】:
我在 Rails 上做一个应用程序,您可以在其中访问餐厅并从他们提供的盘子中下订单。我现在要做的是为名为“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 %>
但它不起作用
【问题讨论】:
-
你能分享更多你的代码吗?您是否发现任何错误?
-
当然!我只是迷失了哪些文件有用,购物车和订单的控制器?关于错误,它在订单索引
<p>Total: <%= order.cart.total_price %></p>上显示此行的undefined method 'total_price' for nil:NilClass,这意味着订单没有收到购物车 -
我一直在尝试在 orders_controller 上添加以下内容:
def show@order.cart = Cart.find(order_id: params[:id])end但它仍然没有将购物车分配给订单
标签: ruby-on-rails