基本、attr_protected か attr_accessible。
どっちかと言われると、札幌Ruby会議03の動画メモのように
attr_protectedを使いましょう!! accessibleは事故の元 未来に追加される属性も拒絶指定 継承元やモジュールやプラグインで使われていたら大変
極力attr_protected がいいのかなと。
まぁ、未来に追加される項目については、
追加時にテストするだろうから、それほど気にすることではない気がします。
ですので、attr_accessibleでもいいのかなぁ。
whitelist_attributes
Rails3.1以降から
whitelist_attributes というmass assingment対策をしないと
例外を発生させるオプションが追加されていたようです。
これを仕込んでおくというのも、いい気がします。
#config/application.rb
config.active_record.whitelist_attributes = true
例外
こんな感じ。
ActiveModel::MassAssignmentSecurity::Error in PostsController#update Can't mass-assign protected attributes: name, title, content, tags_attributes