1

次のようにするにはどうすればよいでしょうか。

  = f.input_field :age,
                  :collection => 18..60,
                  :id => 'age',
                  :selected => params[:age].blank? or "20"

上記は機能しません。その属性に使用できるパラメーターがない場合、デフォルト値を設定できるようにしたい。

これを行うスマートな方法thx!

編集 1: 完全な形式:

  = simple_form_for  :people,  :url => request.fullpath, :method => :get,  :html => { :class => 'form-search' } do |f|
    #container_search_small.form-search


      = f.input_field :age,
                      :collection => 18..60,
                      :id => 'age',
                      :selected => params[:people][:age_from] || "20"



      = f.submit "Go »"
4

1 に答える 1

2

フォームを作成しているオブジェクトから値を取得するヘルパーを使用しています。

したがって、コントローラーでは、オブジェクトの値を事前設定する必要があります。

def some_action
  @people = People.new
  @people.age = params[:age] || 20
end

次に、フォームで:selectedオプションを削除すると問題ありません。のフォームを必ず作成してください@people:

= simple_form_for  @people,  :url => request.fullpath, :method => :get,  :html => { :class => 'form-search' } do |f|
  #container_search_small.form-search


    = f.input_field :age,
                  :collection => 18..60,
                  :id => 'age'



    = f.submit "Go »"
于 2012-09-17T12:40:32.747 に答える