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

use*_*570 3 ruby-on-rails

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

 validates_confirmation_of :password, :message = "Passwords do not match"
 validates_uniqueness_of :email, :message = "Email in use"
Run Code Online (Sandbox Code Playgroud)

和注册看起来像这样

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

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

任何帮助将不胜感激.

Vir*_*ren 8

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

所以检查

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

在页面上显示错误消息

你可以迭代错误对象

编辑:

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

<%= message %>

<%end%>
Run Code Online (Sandbox Code Playgroud)