1

私は最新のDevisegemでrails3.2.5を実行しています。そして、Actorクラスに関連するユーザークラスがあります。次の構文を使用すると、正常に検証されるslugというフィールドがあります...

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
4

1 に答える 1

0

私も同じ問題を抱えていて、validates_uniqueness_ofを単独で分離することでそれを回避することができました。だから私にとって

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

同じエラーをスローします(未定義のメソッド'text?')。に変更しながら

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

うまく動作します。

于 2012-08-30T23:10:06.957 に答える