8

attr_accessibleで許可されていない属性を一括割り当てしようとした場合に、レールでエラーを発生させる方法はありますか?

これは、開発時に、光沢のある新しいモデルが機能しない理由を思い出させるのに便利です。また、悪意のあるアクティビティを検出するために本番環境にログインすることもできます。

レール2.3.8を使用していますが、間もなく3に移行する予定です。

4

3 に答える 3

6

Rails 3.2以降、これはモンキーパッチを必要としなくなりました。railsはこの動作を提供するようになりました。これをdevelopment.rbtest.rbに入れてください:

config.active_record.mass_assignment_sanitizer = :strict
于 2011-11-12T21:15:51.877 に答える
2

BentoプロジェクトのようなものがRailsアプリに組み込まれていることをお勧めします。

config / initializers/の下にRailsInitializerを作成し、ActiveModelクラスの適切なメソッドをオーバーライドしてMassAssignmentErrorを発生させます(非実稼働環境内)。

于 2011-01-16T04:41:36.657 に答える
0

これが機能するかどうかはわかりませんが、オブジェクトが「respond_to(:unexpected_attr)」であるかどうかを確認するためのテストを作成できます。次に、その属性を強制的に与えることを試みることができます

アレックス

于 2011-01-13T18:34:09.573 に答える