Ruby on Rails从View上的URL获取参数

时间:2016-11-16 18:41:03

标签: ruby-on-rails ruby rubygems

我想从我的视图/ html上的URL获取参数。

例如,我在我的数据库中显示了一个特定项目,网址如下:" http://localhost:3000/menus/index.%23%3CMenu::ActiveRecord_Relation:0x007f50ed153250%3E?id=6"

我想要的是:当我点击该特定项目的新按钮时,表单将打开,其中包含URL" http://localhost:3000/menus/new",但我想以某种方式将id = 6传递给这个新观点。

我在html上使用此代码打开表单:<%= link_to 'Novo', new_menu_path %>

我也尝试过:<%= link_to 'Novo', new_menu_path(@menus, :id) %>,但是id param始终为null / empty。

我该怎么做? 谢谢

2 个答案:

答案 0 :(得分:2)

在定义link_to

时,将额外的参数传递给网址
<%= link_to 'Novo', new_menu_path(id: @menu.id, other_param: "hello") %>

将生成http://localhost:3000/menus/new?id=6&other_param=hello

这会将以下内容添加到params哈希

Parameters: {"id"=>"6", "other_param"=>"hello"}

答案 1 :(得分:1)

:id只是一个符号,你需要告诉路由助手什么绑定它。例如

<%= link_to 'Novo', new_menu_path(id: params[:id]) %>

应该为您提供类似/menus/new?id=6

的内容