0

こんにちは、Ruby の select() の":selected => nil"ように変数から値を設定しようとしていますが、どちらの方法でも機能しません。":selected => val"以下のスニペットの何が問題なのか、誰でも教えてください。ありがとう

<%= select( map1[:field_name], "id", map1[:field_codes], :selected => nil )%>

<%= select( map1[:field_name], "id", map1[:field_codes], :selected => val )%>

where map1[:field_name] is a string 
and map1[:field_codes] returns a hash
val is a variable containing one of the values from hash.
4

2 に答える 2

0

あなたのスニペットは問題なく動作します。でテストしました

hash = { "n" => "no", "y" => "yes" }
val = "yes"
ActionView::Base::new.select("name", "id", hash, selected: val)

そしてそれは作成しました:

<select id="name_id" name="name[id]">
   <option value="no">n</option>
   <option selected="selected" value="yes">y</option>
</select>

valと のmap1[:field_codes]値が正確に一致していないか、Rails アプリを起動してフォームをチェックして を確認すると、selected="selected"Rails の外部 (ブラウザなど) に問題がある可能性があります。

于 2013-07-30T16:09:26.027 に答える
-1

オプションを中括弧で囲んでみてください:

 {:selected => val}
于 2013-07-30T14:29:17.920 に答える