2

我刚刚从 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
4

2 回答 2

1

这是用于唯一性验证的 Rails 3 语法:

验证:org_name,唯一性:{范围::org_id}

于 2012-10-26T05:22:29.667 回答
0

这很容易解决。

首先分析报错信息:

组织名称翻译缺失:en.activerecord.errors.models.user.attributes.org_name.blank

这是由以下代码行引起的:

errors.add(:org_name, :blank, :default => nil)

当您调用上述代码时,您是在告诉 rails 查找键为:blank. 您可能还没有设置它,因此,只需进入您的语言环境文件 (config/locales/en.yml),然后添加以下内容:

en:
  hello: "Hello world"
  activerecord:
    errors:
      models:
        organization:
          attributes:
            org_name:
              blank: "can't be blank." 

希望这将为您解决问题。

于 2012-10-26T05:45:17.630 回答