大量割り当てを避けるために、自分自身のためのより体系的な解決策が必要です。
典型的な状況は、id または user_id を params (フォーム経由で自動的に送信される) から削除し、内部で (MyController#create で) current_user.id に置き換えることです。
私が考えることができる解決策は、params ハッシュからオブジェクトを作成し、(親オブジェクトと子オブジェクトの) update_attributes を作成して、機密属性を内部値に置き換えることです。
@user = User.create(:params[:user])
@user.update_attributes(:id => current_user.id)
@user.profile.update_attributes(:user_id => current_user.id)
@user.preference.update_attributes(:user_id => current_user.id)
これを言うためのより短い/よりドライな方法はありますか?
設定、プロファイルなどがユーザーの子オブジェクト (build メソッドで作成) である場合、ユーザーの外部キーを検索し、それらを親に渡した値に自動的に置き換えるメソッドを作成するにはどうすればよいですか?
ありがとうございました。