将方法添加到Rails应用程序中的String类

时间:2013-10-01 11:30:56

标签: ruby-on-rails-3

我想使用以下代码为占有字符串添加方法:

module PossessiveHelper
  def possessive
    suffix = if self.downcase == 'it'
      "s"
    elsif self.downcase == 'who'
      'se'
    elsif self.end_with?('s')
      "'"
    else
      "'s"
    end
    self + suffix
  end
end

class String
  include Possessive
end

我想知道我在Rails app 3.2中包含这个以及如何包含这个?

2 个答案:

答案 0 :(得分:2)

我希望有一个名为monkey_patching.rb的初始化程序,其中包含以下内容:

Dir[Rails.root.join('lib', 'monkey_patching', '**', '*.rb')].each do |file|
  require file.to_s
end

然后,您只需在lib/monkey_patching/string.rb

中添加代码即可

答案 1 :(得分:1)

您应该创建一个具有相同内容的rb文件,并将其放在config / initializers中。

它将在Rails应用程序初始化期间加载,这些新方法将可用于所有字符串对象。