Erbに編集フォームがあります。
<%= form_for @animal do |f| %>
コード内には、オプション付きの選択があります:
<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>
ただし、選択は正しい選択値を表示しないです。何が間違っているのでしょうか?ハードコーディングすれば動作するようになりますが、もちろん実行可能なオプションではありません。
コードでは、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'] %>
_
ところで、:include_blank => true
を使用している場合、これはフォームが選択内容を「認識」している場合でも、現在の選択を空白に設定します。