simple_form не показывает ошибку проверки для одной конкретной формы - PullRequest
1 голос
/ 02 августа 2011

Вот моя форма:

= simple_form_for [@post, @comment] do |f| 
  = f.input :text, :label => false
  = f.button :submit

Комментарии вложены в ресурсы сообщений. Проверка комментариев: validates :text, :length => { :minimum => 5 }

Контролер комментариев:

def create
  @post = Post.find params[:game_id]
  comment = @post.comments.build :user_id => current_user, :text => params[:comment][:text]

  comment.save
  redirect_to @post
end

Сама форма отлично работает. Если я введу более 5 символов, комментарий будет создан. Но если оно меньше, меня просто перенаправляют на posts#show, и в форме нет ошибок проверки (я проверил источники).

Я также попытался заполнить регистрационную форму устройства, и если она не удалась, я вижу ошибки.

Полагаю, проблема в переадресации. Но в любом случае, я не знаю, как это исправить.

1 Ответ

5 голосов
/ 02 августа 2011

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

  1. Не перенаправлять пользователя, а просто использовать render для отображения представления с сообщениями об ошибках.Вот что делает Devise, например.

  2. Перенаправляйте пользователя, но передавайте сообщения об ошибках как-нибудь.Есть много способов сделать это, например, сохранив их, либо в виде простой строки, либо в какой-либо сериализованной форме, во флэш-памяти.Но обычно это более сложно и должно быть сделано только в случае необходимости перенаправления.

...