Как мне сделать 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[]. Он будет содержать данные, которые вы только что опубликовали.