【发布时间】:2018-10-10 22:21:23
【问题描述】:
不知道为什么会这样,我只是使用我在这里看到的方法: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
【问题讨论】:
-
你的价格对
:speed没有价值 -
天哪..需要更多的咖啡..谢谢
-
Ruby 是一种面向对象的语言,而不是面向字符串的 Arrays-of-Hashes-of-Strings 的语言。我怀疑如果你定义了一些类来处理这些数据,你会发现这更容易编码和调试 - 例如
Rate.
标签: ruby-on-rails ruby