未定义的方法`text?' for nil:NilClass验证唯一性rails 3 ruby​​ 187

时间:2012-10-26 02:02:55

标签: ruby-on-rails ruby-on-rails-3

我刚从rails 2.3更新到3,我试图用更干净的东西替换这个旧方法,因为它输出了模型和字段名称,wtf!

enter image description here

但是在调用 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

2 个答案:

答案 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." 

希望能为你解决这个问题。