Rails 4强参数,无需参数

时间:2014-09-18 13:47:57

标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters

我使用的是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]

是否有任何约定或正确的方法?

1 个答案:

答案 0 :(得分:42)

您可以使用fetch代替require

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

当params

中没有设备时,上面将返回空哈希

文档here