web-dev-qa-db-ja.com

rails erb form helper options_for_select:selected

Erbに編集フォームがあります。

<%= form_for @animal do |f| %>

コード内には、オプション付きの選択があります:

<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>

ただし、選択は正しい選択値を表示しないです。何が間違っているのでしょうか?ハードコーディングすれば動作するようになりますが、もちろん実行可能なオプションではありません。

27
Drew Harris

コードでは、options_for_select()呼び出しは選択された値を「性別」に設定し、フォームオブジェクトの値を使用しようとしません。

使用例については、 options_for_select() のドキュメントを参照してください。

_options_for_select(['Mare', 'Stallion', 'Gelding'], f.object.gender)
options_for_select(['Mare', 'Stallion', 'Gelding'], :selected => f.object.gender)
_

または、 これを行うことができます 、フォームオブジェクトに対して既にgender()値を使用します:

_<%= f.select :gender, ['Mare', 'Stallion', 'Gelding'] %>
_
61
kristinalim

ところで、:include_blank => trueを使用している場合、これはフォームが選択内容を「認識」している場合でも、現在の選択を空白に設定します。

5
Hans Hauge