如何从ActiveRecord验证中捕获错误消息?

时间:2012-06-20 05:36:22

标签: ruby-on-rails

我正在使用用户模型中的验证创建注册表单,例如

 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

我不知道如何在触发任何这些验证后将这些消息返回给用户。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:8)

嗯,你没有明确地这样做如果你的验证失败了,他们的错误信息将被写入你案例中的那个对象的错误对象@user

所以检查

@user.errors.count()    要么   @user.errors

在页面上显示错误消息

你可以迭代错误对象

已编辑:

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

<%= message %>

<%end%>