我的select_tag
Rails 3 应用程序中有一个表单。当我选择一个假期并提交表单时,我想被路由到show
我的vacations_controller
. 这是我的表单的代码:
<%= form_tag url_for(:controller => "vacations", :action => "show"), :method => 'get', :id => "song_selector" do %>
<%= select_tag "vacation_id", options_for_select([["Choose your vacation", ""]]+ Vacation.active.collect {|vacation| [ vacation.title, vacation.id ] } ) %>
<% end %>
但是,当我尝试这样做时,出现错误:
No route matches {:controller=>"vacations", :action=>"show"}
我肯定有这样的路线:
resources :vacations, :only => [:index, :show]
以及 rake 路由的输出:
vacation GET /vacations/:id(.:format) vacations#show
我从以前的答案中知道,我只是没有按预期在 URL 中传递 ID。如果我提出参数,我的 ID 看起来像这样作为字符串传递:`"vacations" => "2"。
所以我想知道:如何构造我的 select_tag 以便修复?