我正在设置条带结帐表单,并且希望能够从订单模型中传递参数,而无需将费用资源嵌套在订单资源中。
在我的订单显示视图中,我有一个指向费用新视图页面的链接:
<%= link_to 'Checkout', new_charge_path(:order_id => @order.id ) %>
在充电控制器中:
def new
@order = Order.find_by_id(:id)
end
这是将订单ID传递给费用/新网址。
因此,网址如下所示: / charge / new?order_id = 2
在 ChargesController的新方法中:@order = Order.find_by_id(:id) 我假设这样可以让我访问我的费用/新视图中的所有订单型号信息。问题是,如果我尝试将要收费的金额设置为订单模型中设置的总金额,我会得到一个未定义的方法错误。例如,我在我的收费新视图中试试这个:
<%= @order.total %>
这会引发以下错误:未定义的方法`total&#39;为零:NilClass 如果我从视图中删除该行,则错误消失。我猜这意味着URL中可用的订单ID不会将任何信息传递给控制器。
有人可以帮我理解这里发生了什么吗?
答案 0 :(得分:1)
使用f
代替params[:id]
:
:id