2

パーシャルを通して同じ形を共有するnewとビューがあります。editフォームに状態を​​選択するための選択ドロップダウンがあります。ドロップダウンのオプションを入力するためにヘルパーを使用しています。私の問題は、edit選択したオプションを事前に選択するためのフォームをビューで取得できないことです。

選択ドロップダウンに入力するコードは次のとおりです。

<%= f.select :state, options_for_select(us_states) %>

ヘルパーコードは次のとおりです。

module ListingsHelper
  def us_states
      [
        ['Alabama', 'AL'],
        ['Alaska', 'AK'],
        ['Arizona', 'AZ'],
        ['Arkansas', 'AR'],
        ['California', 'CA'],
        ['Colorado', 'CO'],
        ['Connecticut', 'CT'],
        ['Delaware', 'DE'],
        ['District of Columbia', 'DC'],
        ['Florida', 'FL'],
        ['Georgia', 'GA'],
        ['Hawaii', 'HI'],
        ['Idaho', 'ID'],
        ['Illinois', 'IL'],
        ['Indiana', 'IN'],
        ['Iowa', 'IA'],
        ['Kansas', 'KS'],
        ['Kentucky', 'KY'],
        ['Louisiana', 'LA'],
        ['Maine', 'ME'],
        ['Maryland', 'MD'],
        ['Massachusetts', 'MA'],
        ['Michigan', 'MI'],
        ['Minnesota', 'MN'],
        ['Mississippi', 'MS'],
        ['Missouri', 'MO'],
        ['Montana', 'MT'],
        ['Nebraska', 'NE'],
        ['Nevada', 'NV'],
        ['New Hampshire', 'NH'],
        ['New Jersey', 'NJ'],
        ['New Mexico', 'NM'],
        ['New York', 'NY'],
        ['North Carolina', 'NC'],
        ['North Dakota', 'ND'],
        ['Ohio', 'OH'],
        ['Oklahoma', 'OK'],
        ['Oregon', 'OR'],
        ['Pennsylvania', 'PA'],
        ['Puerto Rico', 'PR'],
        ['Rhode Island', 'RI'],
        ['South Carolina', 'SC'],
        ['South Dakota', 'SD'],
        ['Tennessee', 'TN'],
        ['Texas', 'TX'],
        ['Utah', 'UT'],
        ['Vermont', 'VT'],
        ['Virginia', 'VA'],
        ['Washington', 'WA'],
        ['West Virginia', 'WV'],
        ['Wisconsin', 'WI'],
        ['Wyoming', 'WY']
      ]
  end
end

newこれは問題なく機能し、ビューとビューの両方にリストを入力しeditます。ただし、選択したオプションは設定されません。editこのパーシャルを使用してビューに対してこれを行うにはどうすればよいですか?

4

1 に答える 1

3

あなたの場合、 options_for_select 呼び出しは必要ないと思います。これを行うだけです:

<%= f.select :state, us_states %> 
于 2013-02-04T21:33:37.240 に答える