4

Warbler では、WAR の作成時に RAILS_ENV を指定する必要があります。これは、生成された WAR の web.xml 内に配置されます。

ただし、環境から RAILS_ENV を学習した wAR を作成できれば、ステージングまたはプロダクションに使用できる WAR を 1 つ作成できます。つまり、WAR をテストしてから変更せずにデプロイできる優れた管理体制を作成できます。 .

4

1 に答える 1

3

JRuby-Rackは、web.xmlに配置される前に、RAILS_ENVから読み取るようにすでに設定されているため、その部分はゴールデンです。倒す必要があるのは、warファイル内にrails.erbマージされるこのテンプレートだけです。META-INF/init.rb

ENV['RAILS_ENV'] = '<%= config.webxml.rails.env %>'

現時点では、これを行うための実際の良い方法はありませんがWarbler::Jar#add_init_file、上部にある次のようにオーバーライドしconfig/warble.rbて、Railsテンプレートを削除できます。

class Warbler::Jar
  alias_method :orig_add_init_file, :add_init_file
  def add_init_file(config)
    config.init_contents.delete("#{config.warbler_templates}/rails.erb") if config.init_contents
    orig_add_init_file(config)
  end
end
于 2011-11-18T20:00:28.260 に答える