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 routes の出力:
vacation GET /vacations/:id(.:format) vacations#show
以前の回答から、期待どおりに URL に ID を渡していないことがわかりました。params を上げると、ID が次のような文字列として渡されているように見えます: `"vacations" => "2".
だから私は疑問に思っています:これが修正されるように、select_tagをどのように構築できますか?