Ruby程序的NoMethodError

时间:2011-11-13 05:03:16

标签: ruby

我对Ruby非常陌生,所以请原谅我。 我创建了一个方法funny_sort,它自然地对数组进行排序,然后返回新数组,

def funny_sort(the_array)
    the_array = new_array.each {|s| s.gsub /\D/, ""}
    the_array = new_string.each{|s| s.to_i}
    the_array = new_string.sort_by{|s| s.gsub /\D/, ""}
    return the_array
end

    w = ['app100le', 'car10rot', 'banana']
puts w.funny_sort

但是当我使用Ruby和Rails在Command提示符下运行程序时,我收到以下错误:

sort.rb:10in '<main>': private method 'funny_sort' called for ["app1001e", "carrot10", "banana"]:Array <NoMethodError>

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

你试图在数组上调用它,而不是传递数组。

funny_sort w  # Or with parens...
funny_sort(w)

但是,您可能在其中遇到new_arraynew_string的其他问题,我怀疑.each不会返回您认为它的内容。