我使用的是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]
是否有任何约定或正确的方法?
答案 0 :(得分:42)
您可以使用fetch
代替require
。
def device_params
params.fetch(:device, {}).permit(:notification_token)
end
当params
中没有设备时,上面将返回空哈希文档here。