Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4强参数,无所需参数_Ruby On Rails_Ruby_Ruby On Rails 4_Strong Parameters - Fatal编程技术网

Ruby on rails Rails 4强参数,无所需参数

Ruby on rails Rails 4强参数,无所需参数,ruby-on-rails,ruby,ruby-on-rails-4,strong-parameters,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 我

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

有什么约定或正确的方法吗?

您可以使用
fetch
而不是
require

def device_params
   params.fetch(:device, {}).permit(:notification_token)
end
当设备在参数中不存在时,上面将返回空哈希


文档。

工作起来很有魅力!谢谢大家!@usha是否有任何问题或安全问题将其保留为
参数许可证(:name,:last_name,:age)