面对这样一行代码的“警告”。弃用警告:方法长度已弃用,将在 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?
使用length
Rails中5.1是有点棘手,因为params
现在包括controller
和action
按键,所以要意识到这一点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句