の最初のパラメータはoptions_from_collection_for_select
、任意のコレクション(メソッドを持つ任意のオブジェクトを正確に取得map
)、たとえば。である必要がありArray
ます。
esArray
の例:Hash
options_from_collection_for_select([ { :id => 1, :name => 'Foo' }, { :id => 2, :name => 'Bar' } ], 'to_s', 'to_s')
もちろん、これはばかげた例です。2番目のパラメーターは値のメソッドであり、3番目のパラメーターは名前のメソッドであるためです。to_s
したがって、メソッドはアイテムのメソッドを呼び出して、およびをHash
フェッチします。これにより、次のようになります。id
value
<option/>
'<option value="{:id=>1, :name=>"Foo"}">{:id=>1, :name=>"Foo"}</option>\n<option value="{:id=>2, :name=>"Bar"}">{:id=>2, :name=>"Bar"}</option>'
適切なオブジェクト、たとえばActiveRecord::Base
オブジェクトを提供する場合:
options_from_collection_for_select(Article.all, 'id', 'title')
それはより良い出力を生成します:
'<option value="28">FooBar</option>\n<option value="29">BarFoo</option>'