我刚从rails 2.3更新到3,我试图用更干净的东西替换这个旧方法,因为它输出了模型和字段名称,wtf!
但是在调用 validates_uniqueness_of 时出现上述错误(存在正常)。我传入了主要的id范围,仍然得到它。欢迎任何帮助。
def validate
if org_name.blank?
errors.add(:org_name, :blank, :default => nil)
else
if (org = Organization.find_by_org_name(org_name)) && org != self
errors.add(:org_name, :taken, :default => nil, :value => org_name)
end
end
end
到
validates :org_name, :presence => true
validates_uniqueness_of :org_name, :scope => :org_id
答案 0 :(得分:1)
Ths是唯一性验证的Rails 3语法:
验证:org_name,唯一性:{scope :: org_id}
答案 1 :(得分:0)
这很容易解决。
首先,分析错误信息:
组织名称翻译缺失: en.activerecord.errors.models.user.attributes.org_name.blank
这是由以下代码行引起的:
errors.add(:org_name, :blank, :default => nil)
当您致电上述内容时,您告诉我们要查找其密钥为:blank
的翻译。您可能还没有设置它,所以要做到这一点,只需进入您的locales文件(config / locales / en.yml),并添加以下内容:
en:
hello: "Hello world"
activerecord:
errors:
models:
organization:
attributes:
org_name:
blank: "can't be blank."
希望能为你解决这个问题。