2014-09-18 23 views
15

Uso Rails 4 e non so quale sia il modo migliore per utilizzare parametri forti senza parametri richiesti. Quindi, questo è quello che ho fatto:Rails 4 parametri forti senza parametri richiesti

def create 
device = Device.new(device_params) 
................. 
end 

private 

def device_params 
    if params[:device] 
    params.require(:device).permit(:notification_token) 
    else 
    {} 
    end 
end 

Il mio modello di dispositivo non convalida presenza di qualsiasi cosa. So che potrei fare qualcosa di simile anche:

device = Device.new 
device.notification_token = params[:device][:notification_token] if params[:device] && params[:device][:notification_token] 

C'è qualche convegni o il modo giusto per farlo?

risposta

35

È possibile utilizzare fetch anziché require.

def device_params 
    params.fetch(:device, {}).permit(:notification_token) 
end 

precedente restituirà hash vuoto quando il dispositivo non è presente in params

Documentation here.

+1

Ha funzionato come un fascino! Grazie! –

Problemi correlati