Ruby on Rails在URL中传递参数
这可能是一个非常简单的修复,但我还没有找到答案。
我的申请有订单和任务。 订单有很多任务。 当用户在show order视图中单击新任务时,它会传递order.id:
@order.id) %>
url显示:
/tasks/new?order_id=1
我只是不知道如何提取这个并在我的表单中使用它? 我试过了:
@order_id %>
但它不起作用。
你可以这样做 :
<%= f.text_field :order_id, :value => params[:order_id] %>
或者, 在控制器中捕获值(使用params
)并将其分配给@order_id
。
你做错了,这在Rails中是一个大问题 ,其中约定配置是如此重要的理想。
如果订单包含许多任务,您的路线应如下所示:
/orders/:order_id/tasks/new
并且您的路线应该如此配置:
resources :orders do resources :tasks end
您应该[几乎]永远不会发现自己在查询字符串中传递记录ID。 事实上,你几乎不会发现自己在Rails中使用查询字符串。