2012-08-08 62 views
1

我正在使用最新的Devise gem运行rails 3.2.5。我有一个与Actor类相关的用户类。有一个叫场蛞蝓,如果我使用下面的语法验证精...Rails 3:错误与设计Gem +:唯一性验证

validates :slug, :presence => true, :length => { :maximum => 50 } 

但是,如果我把多余的唯一参数

validates :slug, :presence => true, :length => { :maximum => 50 }, :uniqueness => true 

它抛出一个错误...

NoMethodError in Devise::RegistrationsController#update 

undefined method `text?' for nil:NilClass 

我不确定是什么原因引起的。

我还要提到的是,在我的用户模型类,我有以下...

attr_accessible :name, :email, :password, :password_confirmation, :language, :remember_me, :profile_attributes, :admin, :slug 

而且,在我的配置文件我有

config.active_record.whitelist_attributes = false #not standard nor recommended I know 

回答

0

我有同样的问题,能够通过自己分离出validates_uniqueness_of来绕过它。所以对我来说

validates :username, :presence, uniqueness: { case_sensitive: false } 

抛出了同样的错误(未定义的方法 '的文字?')。同时更改为

validates_presence_of :username 
validates_uniqueness_of :username, { case_sensitive: false } 

工作得很好。