2012-08-08 61 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 } 

工作得很好。