Ruby on rails 在Rails中,如何创建一个下拉菜单,将参数填入要导航到的路径?

Ruby on rails 在Rails中,如何创建一个下拉菜单,将参数填入要导航到的路径?,ruby-on-rails,Ruby On Rails,尝试使用集合中的项目创建选择菜单,以便在选择项目并点击提交时,用户将被带到该项目的显示操作…我所拥有的是这样的: <% form_tag("subjects/#{@subject.id}/state/:id", :method=>:get) do %> <%= select_tag('state', options_from_collection_for_select(State.states, 'id', 'name'))%> <%= submit_

尝试使用集合中的项目创建选择菜单,以便在选择项目并点击提交时,用户将被带到该项目的显示操作…我所拥有的是这样的:

<% form_tag("subjects/#{@subject.id}/state/:id", :method=>:get) do %>
  <%= select_tag('state', options_from_collection_for_select(State.states, 'id', 'name'))%>
  <%= submit_tag "go!" %>
<% end %>

我想要的是在菜单中选择什么来填充:id参数…这是rails 2.3

您可以将表单发送到一个操作,该操作将重定向到您想要的位置:

<% form_tag("some_controller/redirection", :method=>:get) do %>
  <%= select_tag('id', options_from_collection_for_select(State.states, 'id', 'name'))%>
  <%= hidden_field_tag :subject_id, @subject.id %>
  <%= submit_tag "go!" %>
<% end %>

您请求的URL的结构不能仅使用HTML表单。它需要一些Javascript:

$('#my_form').submit(function(){
  window.location = '/subjects/' + $('#subject_id').val() + '/state/' + $('#state_id').val();
});

这个问题我不太清楚。请你把主要的动作包括显示、创建、查看相关的控制器。还有,什么是@subject?它是模型吗?最后,您不使用form_for和collection_select有什么特殊原因吗?
$('#my_form').submit(function(){
  window.location = '/subjects/' + $('#subject_id').val() + '/state/' + $('#state_id').val();
});