2

新しいRailsプロジェクトでは、大量割り当てが本番環境で厳密に設定されていない理由と、開発とテストで厳密に設定されている理由は何ですか?

4

1 に答える 1

4

あなたはこの行を意味します、私は仮定します:

# Raise exception on mass assignment protection for Active Record models
config.active_record.mass_assignment_sanitizer = :strict

これは、一括割り当て保護自体を設定しません。環境に関係なく、デフォルトで保護されます。コメントが示唆しているように、それが行うことは、大量代入エラーで例外を発生させるように Rails に指示することであり、これは開発とテストに役立ちます。本番環境では、それらは単純に無視されます。

のドキュメントからattr_protected:

これらの属性への一括代入は単純に無視されます。それらに代入するには、直接書き込みメソッドを使用できます。これは、URL やフォームを改ざんする悪意のあるユーザーによって機密属性が上書きされるのを防ぐためのものです。

于 2012-11-06T19:12:12.347 に答える