Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails 4 strong parameters without required parameters

Tags:

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?

like image 887
William Weckl Avatar asked Sep 18 '14 13:09

William Weckl


1 Answers

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.

like image 53
usha Avatar answered Oct 13 '22 00:10

usha