一括代入によるセキュリティ リスクを防ぐ公式の方法は、attr_accessibleを使用することです。ただし、一部のプログラマーは、これはモデルの仕事ではないと感じています (または少なくともモデルの仕事ではありません)。コントローラーでこれを行う最も簡単な方法は、paramsハッシュをスライスすることです。
@user = User.update_attributes(params[:user].slice(:name))
ただし、ドキュメントには次のように記載されています。
attr_accessible の代わりに Hash#except または Hash#slice を使用して属性をサニタイズしても、十分な保護が得られないことに注意してください。
何故ですか?パラメータのホワイトリストスライスが十分な保護を提供しないのはなぜですか?
更新: Rails 4.0では、パラメーターの洗練されたスライスである strong-parameters が出荷される予定です。