代码之家  ›  专栏  ›  技术社区  ›  Jarrod

使用Rails生成器修改现有文件?

  •  2
  • Jarrod  · 技术社区  · 15 年前

    我正在编写一个生成器,它添加了一些服务器将使用的文件。我还想在environment.rb文件中添加一行。这可以通过生成器完成,还是应该使用应用程序模板?

    2 回复  |  直到 15 年前
        1
  •  2
  •   m104    15 年前

    与其修改environment.rb,不如检查一下可以做什么。 Rails initializers . 基本上,您只需要在配置/初始值设定项中创建一个新的ruby.rb文件,并将配置加载代码保存在其中。如果需要每个环境配置,最好在config/中创建另一个(通常是yaml)文件,该文件将存储每个环境配置变量,并将该yaml加载到初始值设定项中。

        2
  •  2
  •   x6iae user3772547    8 年前

    你可以使用 initializers 对于自定义初始化代码,但是如果您发现使用生成器添加到现有文件中是合适的,下面是内置生成器的工作方式:

    # 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 行),然后在新行之后立即填充它。