3

モデルの仮想属性の問題を解決するためにかなりの時間を費やしました。モデルの attr_accessible に追加するのを単に忘れていたことが判明しました。確かに、それをもっと早くキャッ​​チするか、最初に attr_accessible に追加して全体の取り組みを開始する必要がありました。

これが再び起こらないようにするために、何かを一括割り当てして保護/アクセスできないときに検証しようとすると、開発時に例外をスローするようにフラグを立てることができる構成設定はありますか? set を使用してすべてのホワイトリストを要求できることは知っていconfig.active_record.whitelist_attributes = trueますが、私の質問は個々の属性に基づいています。

たとえば、上記の行は、モデルに attr_accessible :name があり、後で :nickname (仮想かどうかに関係なく) を追加し、存在 =>true をチェックして一括割り当てを試みた場合、警告を表示しません。一括代入によって保護された属性を検証しようとしたことを警告してほしい。

4

1 に答える 1

6

ActiveModel::MassAssignmentSecurity::ErrorRails 3.2 には、その場合にa を上げる設定オプションがあります。

config.active_record.mass_assignment_sanitizer = :strict

Rails 3.2 のリリース ノートRails のコミットを参照してください。

于 2012-03-13T06:57:29.393 に答える