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