web-dev-qa-db-ja.com

f.select Railsを選択する方法

それは私のコードです:

<%= f.select :area, options_for_select([['a','a'],['b','b'],['c','c']]), {}, {:class => 'span3 controls controls-row'}, :selected => params[:area] %>

結果は次のとおりです。

ArgumentError in Users#edit
Showing /home/airson/Rails_projects/friends_of_local/app/views/users/edit.html.erb where line #17 raised:
wrong number of arguments (5 for 4)

なぜ.....@@?

18
Wayne Chu

:selectedを使用する必要はなく、params[:area]のみを2番目の引数としてoptions_for_selectに渡すだけです。

<%= f.select :area, 
    options_for_select([['a','a'],['b','b'],['c','c']], params[:area]),
    {}, { :class => 'span3 controls controls-row' } %>

params[:area]の最後の値が選択されます。

それが役に立てば幸い ; )

33
Raindal

次のように、:selectedオプションをoptions_for_selectメソッドに渡す必要があります。

<%= f.select :area, options_for_select([['a','a'],['b','b'],['c','c']], :selected => params[:area]), {}, { :class => 'span3 controls controls-row' } %>
14
Marek Lipka

上記の回答は、Rails 6.ではうまくいきませんでした。これがうまくいきました。- Redditの回答の1つからコピー

= f.select(:results, options_for_select(['Accepted', 'Not Accepted', 'Rejected', 'Acc', 'Rej', 'Information Only', 'N/A'], selected: @report.results || nil), { include_blank: "Select Result" }, { class: 'form-control select2', style: 'width: 100%;'})
0
mayorsanmayor