Ошибки проверки формы в Rails 3 - PullRequest
0 голосов
/ 03 декабря 2010

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Вам нужно сохранить свои ошибки в сессии.


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

теперь вы можете получить доступ к объекту ошибок из любого места, используя session[:client_create_errors]

1 голос
/ 03 декабря 2010

Почему бы и нет:

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

вместо redirect_to :back?

...