我有一个表单,提交后会运行 sidekiq 工作程序。目前,如果您在空表单上单击“提交”,它会尝试运行工作程序。我想要的是它提醒用户在提交之前需要填写这些字段。
我尝试将 :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 %>
最佳答案
我能想到的最简单的事情(没有看到你的代码)是向 Controller 操作添加逻辑(: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
关于javascript - 必填字段未收到 form_for 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570707/