我有以下代码:
validates :username,:password, :presence => {:message => 'fields must not be blank'}
但是当该字段为空白时,我无法收到错误消息。
我有以下代码:
validates :username,:password, :presence => {:message => 'fields must not be blank'}
但是当该字段为空白时,我无法收到错误消息。
通过错误数组访问它们:
<model_instance>.errors
然后,您可以通过执行以下操作单独访问消息:
model.errors.full_messages.each do |message|
puts message
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
检查您的终端打印的内容
虽然不确定,但这样的事情对我有用(只是一个示例场景):
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
所以它没什么,只是引入了异常处理。
还有一个建议,问题中的代码行,如果用户名为空,则错误消息将是“用户名字段不能为空”,因此建议使用单数错误消息:)
希望它会有所帮助!