对于find_all上的nil:NilClass,未定义的方法“ []”

时间:2018-12-01 12:16:41

标签: ruby-on-rails ruby

我在这里有此代码:

if hotel_hash[:postal_code].present?
  selected_hotel = @hotels.find_all { |hcom| hotel_hash[:postal_code].to_s.gsub(/\s+/, "") == hcom[:postal_code].to_s.gsub(/\s+/, "") }
end

@hotels已填充。 selected_hotel行出现错误。我经历了一个byebug,并且工作到了邮政编码S7 1NQ为止。任何想法都很棒。

1 个答案:

答案 0 :(得分:1)

似乎您的nil枚举中至少有一个@hotels值。

您可能想先@hotels.compact过滤列表:

selected_hotel = @hotels.compact.find_all { |hcom| hotel_hash[:postal_code].to_s.gsub(/\s+/, "") == hcom[:postal_code].to_s.gsub(/\s+/, "") }