2016-12-18 23 views
0

私はこのフォームはドロップダウンリストとして表示する:Railsのドロップダウンメニュー - ユーザーの選択からパスのパラメータを割り当てる

<%= form_tag job_index_path do %> 
    <%= select_tag "area", options_for_select(@areas.collect { |area| [ area.name, area.name ] }), :onchange => "this.form.submit();" %> 
<% end %> 

望ましい結果は、フォームが送信されたとき、それは「エリア」を取るということですユーザーが選択してのparamsとして追加すること[:エリア]次のルートのオプション:たとえば

get ':area' => 'job#index', :as => 'job_index' 

、3つの選択肢があるリストの場合:ロンドン、ダブリン、パリを。ユーザーが 'Dublin'を選択すると、フォームはサブミットされ、params [:area]が 'Dublin'に割り当てられます。その後、URL localhost:3000/Dublinに移動します。

しかし、ユーザーが提案をしたら、:areaパラメータをフォームパスに追加する方法を理解できません。私はおそらくそれはおそらく非常に簡単なことですが、私はそれを把握しているように見えることはできません。

すべてのヘルプは大歓迎です:)

答えて

0

私はそれが次のRubyとJavaScriptコンボ

<%= select_tag 'area_id', options_from_collection_for_select(@areas, "name", "name") %> 

<script type="text/javascript"> 
    $(function(){ 
     $('#area_id').bind('change', function() { 
      var url = "/" + $(this).val() 
      if (url) { 
       window.location.replace(url); 
      } 
      return false; 
     }); 
    }); 
</script> 
と協力しました
関連する問題