1

collection_selectハッシュの内容を表示するためにa を使用しています:

ハッシュ

CATEGORY1_TEXT_STYLE = {
  'Normal' => 'normal',
  'Normal Centered' => 'normal center',
  'Bold' => 'bold'
  ...
}

コレクション選択

= collection_select :category1_style1, :first, Homepage::CATEGORY1_TEXT_STYLE, :last, :first, options = { :selected => style_selected(@style.first) }

style_selected(ヘルパーより)

def style_selected(value)
  returnval = ''
  Homepage::CATEGORY1_TEXT_STYLE.each { |key, val| returnval = key if val == value }
  returnval
end

コントローラ

@style = Homepage.find(0).category1_style.gsub('-', '').split("\n")[1..-1]

これは以下を出力します:[" bold center", " blue center", " normal center", " blue center"]

そのハッシュに基づいて選択された値を選択する方法がわからないため、混乱しています。ID値(数値)を使用する前にそれを行ったことがあり、機能しますが、このキーと値のペアは両方とも文字列であり、:selected => ""フィールドはキーの一致かどうかにかかわらず、再度一致する文字列を取得したくないようです値(私は両方を試しました)。

文字列を処理するときに、コレクションを選択してデフォルトの選択値を表示しようとすることについての洞察はありますか?

ありがとう!

4

1 に答える 1

1

答えはここにあります: http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/collection_select#632--selected

デフォルトでオブジェクトを選択したい場合は、オブジェクト全体ではなく、必ずその ID を使用してください。

于 2012-12-21T02:53:36.943 に答える