Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails表单标签url路径_Ruby On Rails_Forms - Fatal编程技术网

Ruby on rails rails表单标签url路径

Ruby on rails rails表单标签url路径,ruby-on-rails,forms,Ruby On Rails,Forms,这看起来应该很简单,但却给我带来了麻烦 我有一个select_标签,从模型中提取。我只想让一个人从下拉列表中选择他们的位置,按submit并将其带到places页面 这是我的 <% form_tag installation_path do %> <%= select_tag :id, options_from_collection_for_select(Installation.find(:all), :id, :name) %> <div id="button"

这看起来应该很简单,但却给我带来了麻烦

我有一个select_标签,从模型中提取。我只想让一个人从下拉列表中选择他们的位置,按submit并将其带到places页面

这是我的

<% form_tag installation_path do %>
<%= select_tag :id, options_from_collection_for_select(Installation.find(:all), :id, :name) %>
<div id="button">
  <p>
    <%= submit_tag "Go", :name => nil %>
  </p>
</div>


零%>

问题是它当然需要
:id
,但它不会从下面的下拉菜单中拉出
:id

我做错了什么,关于“正确”方法的任何其他建议


谢谢

看起来你真的想得到,而不是发布参数

form_tag installation_path, :method => :get do

首先谢谢!使用错误的方法是一个问题。但是,为了使路由正确,需要使用安装路径(id)。但是,提取的id是从集合中选择的数组的id。有什么想法吗?看起来这项简单的任务并不是那么难。问题是,您想提交表单,然后转到
/installations/:id
。相反,您将进入
/installations?id=:id
。因此,您可以为Rails提供一个路由
match'/installations',:to=>“installations”#show'
。该路由的问题是-它与索引冲突。因此,您应该有一个特殊的路径:
match'/goto_installation'=>“installations#show',:as=>“goto_installation”
。然后在您的表单中:
form\u标记转到安装路径,:method=>:get do
。然后在控制器的before过滤器中,您可以
重定向到安装路径(:id=>params[:id])
以获得所需的url。嗨,我刚刚回到这里,结果发现我不能使用“匹配”,因为我还没有运行rails3。还有其他方法吗。我就是不明白为什么这么复杂。似乎这是一直在做,但我似乎找不到任何指导。提前谢谢。我感谢你的帮助。