Rails:获取f.range_field以提交null或nil作为默认值

时间:2015-06-22 23:57:59

标签: ruby-on-rails forms

在我的应用中,我有一个range_field,用户可以选择0..100。但如果他们没有选择任何内容,我希望表单提交" null"或nil作为值而不是数值。

这可能吗?

如果我使用下面的语法,那么一切正常,除了值不是nil:

 <%= f.range_field :content, :value=> nil, :class=> "question-field percentage", :step => 10, :in => 0..100, :data => {:question => question.id} %> 

如果我使用这种语法,那么值为零,但我的其他选项不起作用:

 <%= f.range_field :content, :value=> nil, :options=> {:in => 0..100, :step => 10, :class=> "question-field percentage", :data => {:question => question.id}} %>

1 个答案:

答案 0 :(得分:1)

您可以添加隐藏的复选框值来判断用户是否选择。

= f.range_field :content, :value=> nil, :class=> "question-field percentage", :step => 10, :in => 0..101, :data => {:question => question.id
= check_box_tag :range_clicked, true, false, style:'display:none;'

然后添加一个js函数来判断用户是否点击了范围输入

  $('#foobar_content').on('click',function(){
    $('#range_clicked').attr('checked',true);
  });

如果用户选择范围输入,则params[:range_clicked]的值为true,否则为nil