Подтвердить что ты не робот

Рельсы 4 сильных параметра без требуемых параметров

Я использую 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]

Есть ли какие-либо соглашения или правильный способ сделать это?

4b9b3361

Ответ 1

Вы можете использовать fetch вместо require.

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

Выше будет возвращать пустой хэш, если устройство отсутствует в параметрах

Документация здесь.