attr_accessibleで許可されていない属性を一括割り当てしようとした場合に、レールでエラーを発生させる方法はありますか?
これは、開発時に、光沢のある新しいモデルが機能しない理由を思い出させるのに便利です。また、悪意のあるアクティビティを検出するために本番環境にログインすることもできます。
レール2.3.8を使用していますが、間もなく3に移行する予定です。
attr_accessibleで許可されていない属性を一括割り当てしようとした場合に、レールでエラーを発生させる方法はありますか?
これは、開発時に、光沢のある新しいモデルが機能しない理由を思い出させるのに便利です。また、悪意のあるアクティビティを検出するために本番環境にログインすることもできます。
レール2.3.8を使用していますが、間もなく3に移行する予定です。
Rails 3.2以降、これはモンキーパッチを必要としなくなりました。railsはこの動作を提供するようになりました。これをdevelopment.rbとtest.rbに入れてください:
config.active_record.mass_assignment_sanitizer = :strict
BentoプロジェクトのようなものがRailsアプリに組み込まれていることをお勧めします。
config / initializers/の下にRailsInitializerを作成し、ActiveModelクラスの適切なメソッドをオーバーライドしてMassAssignmentErrorを発生させます(非実稼働環境内)。
これが機能するかどうかはわかりませんが、オブジェクトが「respond_to(:unexpected_attr)」であるかどうかを確認するためのテストを作成できます。次に、その属性を強制的に与えることを試みることができます
アレックス