我有以下代码:
validates :username,:password, :presence => {:message => 'fields must not be blank'}
但是当字段为空时我无法收到错误消息。
答案 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
因此,它不仅仅引入了异常处理。
还有一个建议,即问题中的代码行,如果用户名为空,则错误消息将为“用户名字段不能为空”,所以它建议有单一的错误信息:)
希望它能帮助!!