未定义的方法`包括?' for#<string:0x2907480>(NoMethodError)</string:0x2907480>

时间:2014-05-21 20:26:20

标签: ruby

在字符串文件上运行以下脚本时,我看到了这个奇怪且令人惊讶的错误:

ignored_files = [
".sln",
".csproj", 
".cs", 
]

File.open(ARGV[1], "w") do |out|
    File.open(ARGV[0], "r") do |f|
        f.each_line do |line|
            if not (ignored_files.any? { |ignored| line.includes? ignored})
                out.puts(line)
            end
        end
    end
end

这似乎是我难以理解的基本问题。我猜测我得到了一个我似乎无法捕获的拼写错误,或者我的ruby安装以一种奇怪的方式进行了fubar-ed,这允许其他类似的脚本正常运行

思想?

2 个答案:

答案 0 :(得分:4)

应该是:

line.include? ignored

而不是:

line.includes? ignored

请参阅documentation

答案 1 :(得分:1)

line.include?(单数)。请参阅api docs