0

モデルにハッシュが定義されたクラスがあります。

{:"manager" => 1, :"staff" => 2}.freeze

私の形では部分的です。

  <li class="field">
    <%= f.label :position_type %><br />
    <%= f.select :position_type, @person.position_types, {:include_blank => true} %>
  </li>

そのためsubmit、show.html.erb のボタンを押すと、選択した値の値のみが表示され、意図したキーは表示されませんでした。

Q:keyではなくが表示されるように微調整するにはどうすればよいですかvaluesselectではなくタグと関係があることはわかっていますhash

PS:

  1. 私はすでに使用arrayしており、それは私が望むことをしています。

  2. hash.invertshow.html.erbには表示keysされますが、new/edit.html.erb には表示されません。フォームに入力しようとするユーザーがキーを記憶できないため、それほど役に立ちません => 到達する値出力としてのキー。

selectRails の が HTMLnamevalueattirbをどのように受け取るのかに興味があります。hashvalueには関連付けられている各 がすでに含まれているため、フォームが送信されたときに Rails がas HTML属性をkey暗黙的に取得すると想定しています。key's valuevalue

4

1 に答える 1

0

ドキュメントhttp://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.htmlによると 、名前とIDはネストされた配列でなければなりません。マップからそれを作成するには、次を使用できます。

@person.position_types.map{|k,v| [k.to_s,v]}
于 2012-07-23T23:37:59.417 に答える