NoMethodError:未定义的方法`join'

时间:2013-10-11 12:07:51

标签: ruby rspec

所以这是我正在研究的Ruby代码:

def translate(x)
 array = x.split(" ")
  array.each do |y|
    if y.match(/^[aeiou]/)
      y += "ay"
    else 
      until y.match(/^[aeiou]/) do
        var = y[/^[^aeiou]*/]
        y.slice! /^[^aeiou]*/
        y += (var + "ay")
      end
    end
  x = y.join(" ")
  x
end
end

我测试时出现问题。就是这样:

NoMethodError:
       undefined method `join' for "appleay":String

完全不确定我的连接方法是什么问题。

1 个答案:

答案 0 :(得分:1)

y是一个字符串。如果你需要从它的字符数组中制作你应该这样做:

x = y.split(//).join(" ")

但可能你想把它放在循环之后。它看起来像:

def translate(x)
  array = x.split(" ")
  x = []
  array.each do |y|
    if y.match(/^[aeiou]/)
      y += "ay"
    else
      until y.match(/^[aeiou]/) do
        var = y[/^[^aeiou]*/]
        y.slice! /^[^aeiou]*/
        y += (var + "ay")
      end
    end
    x << y
  end
  x.join(' ')
end
相关问题