繁体   English   中英

Ruby on Rails 在 URL 中传递参数

[英]Ruby on Rails Passing Parameter In URL

这可能是一个非常简单的解决方法,但我还没有找到答案。

我的应用程序有订单和任务。 订单有很多任务。 当用户在显示订单视图中单击新任务时,它会传递 order.id:

<%= link_to "New Task", new_task_path(:order_id=> @order.id) %>

url 显示:

/tasks/new?order_id=1

我只是不知道如何提取它并在我的表单中使用它? 我努力了:

<%= f.text_field :order_id, :value => @order_id %>

但它不起作用。

可以这样做

<%= f.text_field :order_id, :value => params[:order_id] %>

或者,捕获controller 中的值(使用params )并将其分配给那里的@order_id

你做错了,这在 Rails 中很重要,因为约定优于配置是一个如此重要的理想。

如果一个订单有很多任务,你的路线应该是这样的:

/orders/:order_id/tasks/new

你的路线应该这样配置:

resources :orders do
  resources :tasks
end

您应该[几乎] 永远不会发现自己在查询字符串中传递记录 ID。 事实上,您几乎不应该发现自己在 Rails 中使用查询字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM