5

Rails3とFormtasticでフォームを作成しています。私は次のフィールドを持っています:

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"} %>

次のようなHTMLを生成します。

<input id="post_one" name="post" type="radio" value="one" />Awesome</label>
<input id="post_two" name="post" type="radio" value="two" />Great</label>
<input id="post_three" name="post" type="radio" value="three" /> Nice</label>

それは完璧に機能します!

ここで、デフォルトの(選択された)値として「Great」をマークするオプションを渡す方法を知りたいと思います。次のことを試してみましたが、うまくいきません。

<%= f.input :housing, :as => :radio, :collection => {"Awesome" => "one", "Great" => "two", "Nice" => "three"}, :default => "one" %>

私も渡してみまし:selected:checked:default、残念ながら動作しません。

誰かがこれを行う方法を知っていますか?

ありがとう!


編集: Adityaは非常に良い点をもたらします。いくつかの検索で、この役立つヒントが得られました。

4

3 に答える 3

8

次のように、コレクションメンバーの配列の3番目の要素を使用して特定のラジオ入力オプションにHTMLオプションを設定します。

<%= f.input :author, :as => :radio, :collection => [["Test", 'test'], ["Try", "try", {:checked => true}]]
于 2011-11-30T10:12:45.343 に答える
6

モデルの:housing属性の値をデフォルト値に設定してみましたか?フォームを開始する直前またはコントローラーでこれを行うことができますか、それともモデルの初期化で行うのが最善の方法ですか?ビューは、デフォルトのIMHOに最適な場所ではない場合があります。

于 2010-12-27T07:57:47.320 に答える
6

ビューでこれを行うオプションはなくなりました。正しい方法は、デフォルトでモデルを正しい値で初期化するか、Adityaで説明されているように、モデルをコントローラーでその状態にすることです。

于 2010-12-27T12:03:27.640 に答える