私はRails 4を使用していますが、必要なパラメーターなしで強力なパラメーターを使用するための最良の方法がわかりません。それで、私は次のようにしました。
def create
device = Device.new(device_params)
.................
end
private
def device_params
if params[:device]
params.require(:device).permit(:notification_token)
else
{}
end
end
私のデバイスモデルは何の存在も検証しません。私もそのようなことができることを知っています:
device = Device.new
device.notification_token = params[:device][:notification_token] if params[:device] && params[:device][:notification_token]
慣習やそれを行う正しい方法はありますか?
fetch
の代わりにrequire
を使用できます。
def device_params
params.fetch(:device, {}).permit(:notification_token)
end
デバイスがパラメータに存在しない場合、上記は空のハッシュを返します
ドキュメント ここ 。