В Ruby on Rails, чтобы расширить класс String, где должен быть введен код?

Если на Ruby on Rails мне нужно добавить метод под названием

class String
  def capitalize_first
    # ...
  end
end

и задаться вопросом, куда должен идти файл? (какой каталог и имя файла, и какой-либо код инициализации нужен?) Это для проекта Rails 3.0.6.

Ответ 1

Я всегда добавляю каталог core_ext в мою директорию lib.

Создайте инициализатор для загрузки пользовательских расширений (например: 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

Ответ 2

Вы можете сделать это в config/initializers/string.rb

class String
  def capitalize_first
    # ...
  end
end

должно быть все, что вам нужно (помимо перезапуска приложения).