新しい Rails 4 サイトを作成すると、生成されたコントローラーに、サニタイズされたパラメーターを受け取るために使用するプライベート メソッドが含まれていることがわかります。これはいいイディオムで、次のようになります。
private
def user_params
params.require(:user).permit(:username, :email, :password)
end
一括割り当てを許可する古い方法は、次のようなものを使用することでした:
attr_accessible :username, :email, :password
モデルで、特定のパラメーターをアクセス可能としてマークします。
アップグレード中
アップグレードするには、いくつかのオプションがあります。最善の解決策は、コントローラーを params メソッドでリファクタリングすることです。ただし、これは今の時間よりも多くの作業になる可能性があります。
Protected_attributes ジェム
別の方法は、attr_accessible メソッドを復活させる protected_attributes gem を使用することです。これにより、アップグレード パスがわずかにスムーズになりますが、大きな注意点が 1 つあります。
主な警告
ただし、Rails 3 では、attr_accessible 呼び出しのないモデルはすべての属性を許可していました。
protected_attributes gem を使用する Rails 4 では、この動作が逆になります。attr_accessible 呼び出しのないモデルでは、すべての属性が制限されています。すべてのモデルで attr_accessible を宣言する必要があります。これは、attr_accessible を使用していない場合は、これをすべてのモデルに追加する必要があることを意味します。これは、単に params メソッドを作成するのと同じくらいの作業になる可能性があります。
https://github.com/rails/protected_attributes