Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 什么是errors.add_到_库的Rails3版本?_Validation_Ruby On Rails 3_Model - Fatal编程技术网

Validation 什么是errors.add_到_库的Rails3版本?

Validation 什么是errors.add_到_库的Rails3版本?,validation,ruby-on-rails-3,model,Validation,Ruby On Rails 3,Model,我想在Rails 3中编写一个自定义验证,但得到以下结果: 什么是rails3版本的: def validate errors.add_to_base "If you are attaching a file you must enter a label for it" if !attachment.blank? and attachment_label.blank? end 发件人: 使用model\u实例。错误[:base]对我来说,这种“黑客”效果最好: instance.erro

我想在Rails 3中编写一个自定义验证,但得到以下结果:

什么是rails3版本的:

def validate
   errors.add_to_base "If you are attaching a file you must enter a label for it" if !attachment.blank? and attachment_label.blank?
end
发件人:

使用
model\u实例。错误[:base]对我来说,这种“黑客”效果最好:

instance.errors.add("", "Msg")

当我试图将
“base”
指定为第一个参数时,单词base一直被插入到我的验证消息中。

这应该在rails 3.1.3中起作用:

errors.add :base, "message"

尝试使用以下格式


错误[:base]这是因为您使用了字符串
“base”
而不是符号
:base
。有一点不同:不是这样,它添加了
base
,甚至作为一个符号,至少对于Rails 3.1.3是这样。我刚刚在我当前的项目(Rails 3.1.2)中检查了这一点,并且base没有被插入到我的消息中。这可能在3.1.3中有所改变,但我会感到惊讶。我也有同样的问题,但我的问题是呈现错误消息。使用
full_messages
而不是
messages
可以很好地从消息中删除“Base”。@BrianDonovan链接不再工作。对于其他人,请查看是否希望Rails从区域设置中查找消息,您可以使用errors.add(:base,:your_error_symbol)并将其存储在[locale].activerecord.errors.[model].your_error_symbol中
errors.add :base, "message"