2012-06-20 3 views
3

Я создаю форму регистрации с помощью проверки в модели пользователя, такие какКак получить сообщения об ошибках из проверки ActiveRecord?

validates_confirmation_of :password, :message = "Passwords do not match" 
validates_uniqueness_of :email, :message = "Email in use" 

и регистр выглядит как этот

def register 
@user = User.new(params[:user]) 
    if @user.save 
    redirect_to(:action => 'login') 
    else 
    end 
end 

Я просто понятия не имею, как вернуть эти сообщения пользователю, как только они запускают любую из этих проверок.

Любая помощь была бы принята с благодарностью.

ответ

8

Ну вы не должны явно сделать это Если валидация не удается, они ошибки сообщение записывается в объект ошибки для этого объекта в вашем случае @user

так Проверить

@user.errors.count() или @user.errors

Для отображения сообщения об ошибке на странице

Вы можете просто перебрать объект ошибок

Отредактировано:

<% @user.errors.full_messages.each do |message| %> 

<%= message %> 

<%end%> 
+0

работает огромное спасибо – user827570

+0

@ user827570 Добро пожаловать. «Спасибо» - это слишком много, и ответа достаточно :( – Viren

+0

Я не эксперт, но разве вы не пропускаете «каждый» перед блоком do? '@user.errors.full_messages.each do | сообщение | ' – davoclavo