rails3.2 validates MassAssignmentSecurity?::Error

Ruby on Rails 3 アプリケーションプログラミング <http://www.wings.msn.to/index.php/-/A-03/978-4-7741-4663-8/>

の本を読んで5.5章のvalidatesをrails3.2で試してたら、エラーが出てきた。 例えばemailの誤り検出のための確認テキストボックスのところで、

 validates :email,:confirmation => true

と追加すれば、二つのテキストボックスができて、整合性を判定してくれるのだが、下記のようなエラーが出た。

ActiveModel::MassAssignmentSecurity::Error
Can't mass-assign protected attributes

解決方法としては

class User < ActiveRecord::Base
 #attr_accessible :dm, :email, :password, :roles, :username
#↓↓↓↓↓↓↓↓↓↓↓:email_confirmation 項目を追加する
 attr_accessible :dm, :password, :roles, :username,:email,:email_confirmation
 validates :email,:confirmation => true
end

とやれば、validationしてくれる!

この本はrails3.0を対象に書いてるから3.2に進化する過程で、ルールが変わったのかな?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-04-21 (土) 14:27:53 (2616d)