2015-02-17 71 views
0

我有一個窗體,當提交時運行一個sidekiq工人。目前,如果您單擊空表單上的提交,它會嘗試運行該工作人員。我想要的是在提交之前提醒用戶需要填寫的字段。沒有得到form_for所需字段的錯誤

我已經嘗試將: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

我能想到的(沒有看到你的代碼)最簡單的事情是將邏輯添加到控制器動作(: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 
相關問題