2010-12-03 6 views
0

У меня есть форма, которую я создал с использованием Formtastic в Rails 3. Форма отправляется в действие #creatate ClientsController, и если сохранение успешно, контроллер перенаправляется на страницу «спасибо». Если сохранение не удалось, оно перенаправляется на страницу, на которой встроена форма. Я хотел бы иметь возможность отображать ошибки проверки внутри строки на странице формы, но после перенаправления на эту страницу объект ошибок возвращается пустым.Ошибки проверки формы в Rails 3

Что я могу сделать, чтобы отобразить ошибки проверки в форме?

Вот код от контроллера.

if client.save && event.save 
    redirect_to "/thank-you" 
else 
    redirect_to :back 
end 

Некоторые дополнительные подробности: Я использую RefineryCMS так нет просмотра для страницы, где форма, и поэтому я не могу render вид.

ответ

1

Необходимо сохранить свои ошибки в сеансе.


if client.save && event.save 
    session[:client_create_errors] = nil 
    redirect_to "/thank-you" 
else 
    session[:client_create_errors] = client.errors 
    redirect_to :back 
end 

ошибки теперь вы можете получить доступ к объекту с помощью anywere session[:client_create_errors]

1

Почему нет:

render :action => 'name-of-the-view-the-form-is-in' 

вместо redirect_to :back?

+0

К сожалению, я должен отметить, что я использую RefineryCMS, поэтому страницы хранятся в базе данных. Нет просмотра страницы. – picardo 2010-12-03 17:20:26

Смежные вопросы