我最近遇到了此弃用警告
弃用警告:不建议使用方法大小,因为
ActionController::Parameters
不再从哈希继承,因此在Rails 5.1中将删除该方法。使用此不建议使用的行为会暴露潜在的安全问题。如果继续使用此方法,则可能是在您的应用程序中创建了一个可以利用的安全漏洞。
参数看起来像这样:
<ActionController::Parameters { "objects" =>
<ActionController::Parameters {
"0"=>{"priority"=>"24", "style"=>"three_pictures"},
"1"=>{"priority"=>"24", "style"=>"three_pictures"},
"2"=>{"priority"=>"24", "style"=>"three_pictures"}
} permitted: false> } permitted: false>
我试图找到这样的大小objects
:params[:objects].size
然后,我使用length
和尝试了相同的操作count
,从而产生了相同的警告。解决该问题的方法是什么?.keys.length
是可行的方法,但这是正确的方法吗?还是我在这里遗漏了某些东西?
如注释中所述,您必须转换params
为Hash,因为在Rails 5中params
不再继承自Hash
。因此.size
,.length
并且.count
不会直接在params上工作。
如何将其转换为Hash
(可能会有较短的代码):
permitted_params = params.require(:your_model_name).permit(
:product_inspirationals => [
:priority,
:style
]
).to_h
puts permitted_params[:product_inspirationals].length
不了解您的模型结构,因此您必须根据需要进行调整。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句