Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3:Text_field_标记默认值(如果参数为[:something])。是否为空?_Ruby On Rails_Ruby On Rails 3_Forms_Params - Fatal编程技术网

Ruby on rails Rails 3:Text_field_标记默认值(如果参数为[:something])。是否为空?

Ruby on rails Rails 3:Text_field_标记默认值(如果参数为[:something])。是否为空?,ruby-on-rails,ruby-on-rails-3,forms,params,Ruby On Rails,Ruby On Rails 3,Forms,Params,你会怎么做呢 = f.input_field :age, :collection => 18..60, :id => 'age', :selected => params[:age].blank? or "20" 上面这句话不管用。如果没有可用于该属性的参数,我希望能够设置默认值 任何聪明的方法来做这个thx 编辑1: 全文: = simple_form_for

你会怎么做呢

  = 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 »"

您使用的帮助程序从构建表单的对象中获取其值

因此,在控制器中,应预设对象上的值

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 »"

try params[:age]| |“20”我认为应该使用javascript来设置默认值。应该可以根据参数设置值:selected,但如果未提交参数,则会失败。我得到了一个未定义的nil:nil方法“[]”,我用完整的例子更新了我的帖子。这是搜索表单的一部分,我不是在创建,只是希望能够设置回值。编辑了我的答案。使用的
simple\u form\u构建表单的方式,您可以在@people的假实例上设置值,它应该可以工作。如果你不想这样做,你可以创建一个
表单标签
:好的,我看这基本上就是解决方案,但在这种情况下,url request.fullpath需要在每个操作中初始化一个完整的人,或者我应该使用before过滤器。我试试你的解决办法。假设您希望age_from和age_to将这些属性添加到可访问的属性中?就像“虚拟列”一样,如果您想添加与数据库中的字段无关的搜索选项,那么您应该考虑用FrimeTAG来构建一个表单,这样就不会结束为搜索选项创建虚拟属性。在人物模型上使用
age\u from
age\u to
没有多大意义。。无法访问模型数据,这是必须的,我有大量的集合,我不想通过在表单中手动编码来复制它们;s