ruby-on-rails - rails - strong parameters nested attributes
Rails 4 parĂ¡metros fuertes sin parĂ¡metros requeridos (1)
Estoy usando Rails 4 y no sé cuál es la mejor manera de usar parámetros fuertes sin los parámetros requeridos. Entonces, eso es lo que hice:
def create
device = Device.new(device_params)
.................
end
private
def device_params
if params[:device]
params.require(:device).permit(:notification_token)
else
{}
end
end
Mi modelo de dispositivo no valida la presencia de nada. Sé que también podría hacer algo así:
device = Device.new
device.notification_token = params[:device][:notification_token] if params[:device] && params[:device][:notification_token]
¿Hay alguna convención o la forma correcta de hacerlo?
Puedes usar fetch
lugar de require
.
def device_params
params.fetch(:device, {}).permit(:notification_token)
end
Lo anterior devolverá un hash vacío cuando el dispositivo no esté presente en params
Documentación here .