Rails 4 strong parameters without required parameters
11,297
You can use fetch
instead of require
.
def device_params
params.fetch(:device, {}).permit(:notification_token)
end
Above will return empty hash when device is not present in params
Documentation here.
Related videos on Youtube
Author by
William Weckl
Updated on June 06, 2022Comments
-
William Weckl almost 2 years
I'm using Rails 4 and I don't know what is the best way to use strong parameters without required parameters. So, that's what I did:
def create device = Device.new(device_params) ................. end private def device_params if params[:device] params.require(:device).permit(:notification_token) else {} end end
My device model does not validate presence of anything. I know I could do something like that too:
device = Device.new device.notification_token = params[:device][:notification_token] if params[:device] && params[:device][:notification_token]
Is there any conventions or the right way to do that?
-
William Weckl over 9 yearsWorked like a charm! Thank you!
-
alexventuraio over 3 years@usha is there any problem or security issue leaving it as
params.permit(:name, :last_name, :age)
?