2012-10-26 35 views
2

我刚刚从rails 2.3更新到3,我试图用更干净的东西来替换这个旧方法,因为它输出的模型和字段名称wtf!未定义的方法“文本?” for nil:NilClass验证uniqness rails3 ruby​​ 187

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 

回答

1

THS是Rails 3语法唯一validtion:

验证:ORG_NAME,独特性:{范围:org_id}

0

这是容易解决。

首先,分析错误消息:

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

这是由以下所致行代码:

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

当你调用上面的,你告诉铁轨找一个翻译,其关键是:blank。你可能没设置了没有,所以要做到这一点,只要进入你的区域设置文件(配置/区域设置/ en.yml),并添加以下内容:

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

希望这会为您解决问题。

相关问题