次の方法を使用して、範囲を配列に変換できます。to_a
<%= f.select :numbers, (1 .. @user.number).to_a %>
またはf.select
、生の範囲を渡すことができ、それはあなたを要求to_a
します:
<%= f.select :numbers, 1 .. @user.number %>
細かいマニュアルから:
select(object、method、choices、options = {}、html_options = {})
提供されたオブジェクトとメソッドに対して、selectタグと一連の含まれるオプションタグを作成します。オブジェクトが使用可能であれば、オブジェクトが現在保持しているオプションが選択されます。
他のヘルパーの出力に対応して、choicesパラメーターには2つの可能な形式があります。
- フラットコレクション:を参照してください
options_for_select
- ネストされたコレクション:を参照してください
grouped_options_for_select
そしてoptions_for_select
言う:
options_for_select(container、selected = nil)
コンテナ(ハッシュ、配列、列挙可能、タイプ)を受け入れ、オプションタグの文字列を返します。
Rangeは列挙可能であるため、f.select
上記の両方の呼び出しで同じ結果が得られるはずです。