Ruby on rails 如何在Rails 3中显示验证错误?

Ruby on rails 如何在Rails 3中显示验证错误?,ruby-on-rails,validation,activerecord,Ruby On Rails,Validation,Activerecord,我有以下代码: validates :username,:password, :presence => {:message => 'fields must not be blank'} 但当字段为空时,我无法获取错误消息。通过错误数组访问它们: <model_instance>.errors 虽然不确定,但类似的方法对我很有效(只是一个示例场景): 因此,只引入了异常处理,这没什么大不了的 还有一个建议,即问题中的代码行,如果用户名为空,则错误消息将为“用户名字段不得

我有以下代码:

validates :username,:password, :presence => {:message => 'fields must not be blank'}

但当字段为空时,我无法获取错误消息。

通过错误数组访问它们:

<model_instance>.errors

虽然不确定,但类似的方法对我很有效(只是一个示例场景):

因此,只引入了异常处理,这没什么大不了的

还有一个建议,即问题中的代码行,如果用户名为空,则错误消息将为“用户名字段不得为空”,因此建议使用单数错误消息:)

希望对你有帮助

例如

def create
  @user = User.new(params[:user])
  if @user.valid? 
    logger.warn("====valid==========#{@user.error.full_messages.inspect}============")        
  else
    logger.warn("====error==========#{@user.error.full_messages.inspect}============")        
  end
end
在您的终端中检查此打印的内容

def create
  model_instance = Model.new
  begin
    if model_instance.save_model # custom save for model (if required)
      # code
    else
      # code
    end
  rescue
    p model_instance.errors # here you will be able to access them.
  end
end
def create
  @user = User.new(params[:user])
  if @user.valid? 
    logger.warn("====valid==========#{@user.error.full_messages.inspect}============")        
  else
    logger.warn("====error==========#{@user.error.full_messages.inspect}============")        
  end
end