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

时间:2012-10-03 05:14:56

标签: ruby-on-rails validation activerecord

我有以下代码:

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

但是当字段为空时我无法收到错误消息。

3 个答案:

答案 0 :(得分:5)

通过errors数组访问它们:

<model_instance>.errors

然后,您可以通过执行以下操作单独访问消息:

model.errors.full_messages.each do |message|
  puts message
end 

答案 1 :(得分:1)

例如

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

在您的终端检查此打印件

答案 2 :(得分:0)

虽然不确定,但这样的事情对我有用(只是一个示例场景):

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

因此,它不仅仅引入了异常处理。

还有一个建议,即问题中的代码行,如果用户名为空,则错误消息将为“用户名字段不能为空”,所以它建议有单一的错误信息:)

希望它能帮助!!