ActionController ::参数弃用警告:方法大小已弃用,并将在Rails 5.1中删除

桑巴·夏尔马

我最近遇到了此弃用警告

弃用警告:不建议使用方法大小,因为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>

我试图找到这样的大小objectsparams[:objects].size

然后,我使用length尝试了相同的操作count,从而产生了相同的警告。解决该问题的方法是什么?.keys.length是可行的方法,但这是正确的方法吗?还是我在这里遗漏了某些东西?

斯文·R。

如注释中所述,您必须转换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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决弃用警告“方法to_hash已弃用,并将在Rails 5.1中删除”

弃用警告:方法长度已弃用,将在 Rails 5.1 中删除

Rails 5中的ActionController :: InvalidAuthenticityToken

修复了 tableView 函数的“已弃用并将在 Swift 4 中删除”警告

'var'参数已弃用,将在Swift 3中删除

Rails 5 ActionController :: InvalidAuthenticityToken错误

Rails 5 Rspec ActionController :: UrlGenerationError

CSS中的/ deep /组合器已弃用,并将在M63中删除

警告:isInitialValid 已被弃用,并将在 Formik 的未来版本中删除

#warning:C风格的for语句已弃用,并将在以后的Swift版本中删除

商店/的Vuex Classic模式已弃用,并将在Nuxt 3中删除

试图理解这个警告:[UITabBarItem]!使用 '!' 这里已弃用,将在未来版本中删除

Ext.EventManager在ExtJS 5中已弃用

Rails 5弃用警告以进行测试

“:nothing”选项已被弃用,并将在Rails 5.1中删除

间歇性Rails 5 ActionController :: InvalidAuthenticityToken

Rails 4中的ActionController :: InvalidAuthenticityToken

在Ruby on Rails中的ActionController :: InvalidAuthenticityToken

MYSQL - 警告:#1287 在表达式中设置用户变量已被弃用,并将在未来版本中删除

sklearn.tree.tree模块在0.22版中已弃用,并将在0.24版中删除

如何修复Rails 5中的ruby中的'ActionController :: RoutingError(uninitialized constant someController)'错误

弃用警告:不推荐使用before_filter,它将在Rails 5.1中删除。改用before_action

Rails 5 弃用警告“`attribute_change` 的行为”

Rails 5处理ActionController :: ParameterMissing的方法

WEBPACK 弃用数组以使用 web pack 5 在 angular 11 中设置警告

在swift 5中更新代码以避免使用UnsafeMutableBytes弃用警告时发生错误

RCTBatchedBridge已被弃用,并将在以后的React Native版本中删除

iOS5 NSURLConnection方法已弃用

'init(nilLiteral:)' 已弃用:改用 JSON.null。将在以后的版本中删除