В Ruby on Rails, чтобы расширить класс String, где должен быть введен код?
Если на Ruby on Rails, мне нужно добавить метод с именем
class String
def capitalize_first
# ...
end
end
и интересно, куда должен идти файл? (какой каталог и имя файла и требуется ли какой-либо код инициализации?) Это для проекта Rails 3.0.6.
3 ответа:
Я всегда добавляю в своем
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
вы можете сделать это в config/initializers/string.РБ
class String def capitalize_first # ... end end
должно быть все, что вам нужно (кроме перезагрузки приложения).
руководящие принципы в Rails 3.1 путь:
http://guides.rubyonrails.org/plugins.html#extending-core-classes
Если вы следуете соглашению по умолчанию, вам не нужно будет возиться с конфигурацией инициализатора.