Ruby on rails 如何返回该词的状语形式

Ruby on rails 如何返回该词的状语形式,ruby-on-rails,ruby,Ruby On Rails,Ruby,我想知道Ruby中是否有一种方法可以将诸如month之类的单词转换为monthly 类似于复数化(word)我认为没有任何内置方法,但您可以自己编写一个简单的方法: CONSONANTS = [ 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' ] def adverbize(word) if word[-2,2] == "ly"

我想知道Ruby中是否有一种方法可以将诸如
month
之类的单词转换为
monthly


类似于
复数化(word)

我认为没有任何内置方法,但您可以自己编写一个简单的方法:

CONSONANTS = [ 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' ]

def adverbize(word)
  if word[-2,2] == "ly"
     word
  elsif word.length <= 3 and word[-1] == "y"
    word + "ly"
  elsif word[-2,2] == "ll"
     word + "y"
  elsif CONSONANTS.include? word[-3] and word[-2,2] == "le"
     word.sub(/e$/, "y")
  elsif word[-1] == "y"
     word.chop + "ily"
  else
     word + "ly"
  end
end

单词[-1]='y'?word.chop+'ly':word+'ly'这应该处理最常见的异常。还有其他的,比如“le”=>“ly”。相应地编辑,@LarsHaugseth。谢谢当然也有例外,比如害羞=>害羞。祝你好运改进的答案,并没有解决单音节形容词的问题。不过,我会调查的。到期=>及时且真实=>真实如何?请注意,unique=>unique。
def adverbize(word)
    "In a " + word + " fashion."
end