在 RubyonRails 中,为了扩展 String 类,代码应该放在哪里?

如果在 Ruby on Rails 上,我需要添加一个名为

class String
def capitalize_first
# ...
end
end

不知道文件应该放在哪里?(哪个目录和文件名,是否需要任何初始化代码?)这是一个 Rails 3.0.6项目。

33032 次浏览

您可以在 config/initializer/string.rb 中执行此操作

class String
def capitalize_first
# ...
end
end

应该是所有你需要(除了一个应用程序重新启动)。

我总是在我的 lib目录中添加一个 core_ext目录。

创建一个用于加载自定义扩展的 初始化程序(例如: config/initializers/core_exts.rb) ,并在其中添加以下代码行:

Dir[File.join(Rails.root, "lib", "core_ext", "*.rb")].each {|l| require l }

然后把你的分机号码写成:

lib/core_ext/string.rb

class String
def capitalize_first
# ...
end
end

Rails 3.1中的指导方针是可行的:

Http://guides.rubyonrails.org/plugins.html#extending-core-classes

如果遵循默认约定,就不需要修改初始化器配置。