delete_if返回未定义的方法“包括?”对于nil:NilClass

时间:2018-10-10 14:11:06

标签: ruby-on-rails ruby

不知道为什么会这样,我只是在使用我在这里看到的方法:delete_if

但是很明显我做错了,只是说不清。

这是我的代码:

non_enabled_speeds = ["Expedited", "Standard"]

parsed_rates = [{:service_name=>"Expedited",
  :service_code=>"XYZ", :total_price=>800, :currency=>"USD"}, 
  {:service_name=>"Priority", :service_code=>"PYT", 
:total_price=>1300, :currency=>"USD"},
  {:service_name=>"Standard", :service_code=>"XYZ", 
:total_price=>500, :currency=>"USD"}]

non_enabled_speeds.each do |non_enabled_rate|
  parsed_rates.delete_if 
{|rate| rate[:speed].include?(non_enabled_rate)}
end

我了解到delete_if使用include?是秘密的,但是我不确定为什么会收到此错误:

undefined method `include?' for nil:NilClass

1 个答案:

答案 0 :(得分:2)

不是,不是关于delete_if。您的rate[:speed]中有一个(或多个)是nil

{|rate| rate.fetch(:speed, []).include?(non_enabled_rate)}
相关问题