不知道为什么会这样,我只是在使用我在这里看到的方法: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
答案 0 :(得分:2)
不是,不是关于delete_if
。您的rate[:speed]
中有一个(或多个)是nil
。
{|rate| rate.fetch(:speed, []).include?(non_enabled_rate)}