我有一个表单,提交时运行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 %>
答案 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