没有得到必填字段的form_for错误

时间:2015-02-17 20:39:48

标签: javascript jquery ruby-on-rails ruby forms

我有一个表单,提交时运行sidekiq worker。目前,如果您在空表单上单击“提交”,它将尝试运行该工作程序。我想要的是它在提交之前提醒用户我需要的字段。

我尝试将:required => true添加到表单字段中,但这不起作用。此外,我无法在模型中添加验证。我还能做什么?

形式

<%= form_for @call, :url => {:action => 'call_score_range'} do |f| %>
  <%= f.label :enter_score_range_one %>
  <%= f.number_field :score_range_one %>

  <%= f.label :enter_score_range_two %>
  <%= f.number_field :score_range_two %>

  <%= f.submit "Submit" %>
<% end %>

1 个答案:

答案 0 :(得分:1)

我能想到的最简单的事情(没有看到你的代码)就是向控制器动作添加逻辑(:call_score_range?)以手动检查这些字段是否存在,并在那里向模型添加消息,绕过sidekiq逻辑。

def call_score_range
  @call = Call.new(params[:call])
  if @call.enter_score_range_one.present? && @call.enter_score_range_two.present?
    # Do sidekiq stuff
  else
    errors = []
    unless @call.enter_score_range_one.present?
      errors << 'Please enter score range one.'
    end
    unless @call.enter_score_range_two.present?
      errors << 'Please enter score range two.'
    end
    flash.now(errors)
    respond_with(@call)
  end
end