2015-02-17 2 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 
Смежные вопросы