Как мне сделать form_for, чтобы завершить с ранее представленными данными, когда проверка не проходит?

  • Учитывая, что у меня большая форма
  • Когда пользователь отправляет это
  • И проверка данных не удается
  • Затем пользователь снова перенаправляется на предыдущую страницу
  • И форма должна содержать данные, которые пользователь ранее отправил

Как я могу достичь последней части?:P есть что-то вроде flash[] для помощника form_for? Я должен использовать AJAX?

2 ответа

Решение

Как отмечается в некоторых комментариях, это может быть поведение по умолчанию, если вы используете лучшие практики.

Вот пример действий контроллера new/create, которые должны демонстрировать указанное поведение:

def new
  @model = MyModel.new
end

def create
  @model = MyModel.new(params[:my_model])

  if @model.save
    redirect_to my_models_url, :notice => "Success!"
  else
    flash.now[:error] = "There was an error"
    render :new
  end
end

По вашему мнению, проверьте request.method ==:post и используйте ли они данные в params[]. Он будет содержать данные, которые вы только что опубликовали.

Другие вопросы по тегам