Изменить существующие файлы с помощью генератора рельсов? - PullRequest
2 голосов
/ 16 мая 2009

Я пишу генератор, который добавляет несколько файлов, которые будет использовать мой сервер. Я также хотел бы добавить строку в файл environment.rb. Можно ли это сделать с помощью генератора или я должен использовать шаблон приложения?

Ответы [ 2 ]

2 голосов
/ 16 мая 2009

Вы можете использовать инициализаторы для пользовательского кода инициализации, но если вы обнаружите, что добавление в существующий файл с генератором подходит, вот как это делают встроенные генераторы:

# Excerpted from template_runner.rb

# Make an entry in Rails routing file config/routes.rb 
def route(routing_code)
  log 'route', routing_code
  sentinel = 'ActionController::Routing::Routes.draw do |map|'

  in_root do
    gsub_file 'config/routes.rb', /(#{Regexp.escape(sentinel)})/mi do |match|
      "#{match}\n  #{routing_code}\n"
    end
  end
end

Как видите, он просто выясняет, куда они хотят, чтобы код шел (строка sentinal), и вставляет новую строку сразу после нее.

2 голосов
/ 16 мая 2009

Вместо того, чтобы изменять environment.rb, посмотрите, что вы можете сделать с Rails initializer . По сути, вы просто создадите новый файл Ruby .rb в config / initializers и сохраните там код загрузки своей конфигурации. Если вам нужна конфигурация для каждой среды, лучше создать другой файл (обычно YAML) в config /, в котором будут храниться переменные конфигурации для среды и загрузить этот YAML в ваш инициализатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...