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

瓦迪姆·B

面对这样一行代码的“警告”。弃用警告:方法长度已弃用,将在 Rails 5.1 中删除,因为ActionController::Parameters不再从哈希继承。使用这种已弃用的行为会暴露潜在的安全问题。如果您继续使用此方法,您可能会在您的应用中创建一个可被利用的安全漏洞。相反,请考虑使用这些未弃用的记录方法之一:http : //api.rubyonrails.org/v5.0.2/classes/ActionController/Parameters.html

if params[:q].blank? && params[:advanced_search].blank? || params[:q]&.length == 1 && params[:q][:s].present?
  @q.add_default_condition('status', 'in', 'open')
  session[:last_ticket_search] = nil
end

params[:q]&.length == 1 可以使用哪些替代方案?

params[:q].to_unsafe_h&.length == 1 我可以这样做吗?

眼花缭乱

您可以使用该dig方法在 Rails 5.1 中像这样完成检查的第二部分

params.to_unsafe_h.dig(:q, :s).present?

使用lengthRails中5.1是有点棘手,因为params现在包括controlleraction按键,所以要意识到这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

Rails 5弃用警告以进行测试

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

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

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

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

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

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

Ext.EventManager在ExtJS 5中已弃用

Rails 中已弃用的 exception_notification gem 的替代方法?

Rails是否已弃用?

alias_method_chain已弃用-Rails 5升级

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

Rails 4至5 AR布尔弃用

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

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

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

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

Nuxtjs vuetify 抛出大量`Using / for Division 已弃用,将在 Dart Sass 2.0.0 中删除。`

responseJSON 已弃用,将在 Alamofire 6 中删除。改用 responseDecodable

HuggingFace 管道:用户警告:`grouped_entities` 已弃用,将在 v5.0.0 版本中删除。如何改进此警告?

在Heroku中运行Rails 2.3样式的插件和弃用警告任务

在Rails 4中使用has_many:through:uniq时弃用警告

弃用警告不显示 rails 5.2 中的模块,但适用于类

xgboost 中的弃用警告

Rails 5.2.3上的危险查询方法弃用警告

警告:isMounted(...)在纯Javascript类中已弃用

警告:iOS 11.0中已弃用touchID