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中使用查询字符串。