Ruby on rails rails表单标签url路径
这看起来应该很简单,但却给我带来了麻烦 我有一个select_标签,从模型中提取。我只想让一个人从下拉列表中选择他们的位置,按submit并将其带到places页面 这是我的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"
<% 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。还有其他方法吗。我就是不明白为什么这么复杂。似乎这是一直在做,但我似乎找不到任何指导。提前谢谢。我感谢你的帮助。