2011-11-18 11 views
5

Warblerは、WARを作成するときにRAILS_ENVを指定する必要があります。これは生成されたWARのweb.xmlの中に入れられます。JRuby Warblerを使用すると、環境変数からRAILS_ENVを知ることができるWARを生成できますか?

しかし、RAILS_ENVを環境から学んだwARを​​作成できれば、ステージングやプロダクションに使用できる1つのWARを作成することができます。つまり、WARをテストしてから変更せずに展開されます。

答えて

4

JRuby-Rackは、web.xmlに入れる前にRAILS_ENVから読み込むように既に設定されているため、その部分は黄金色です。そこ現時点でこれを行うには本当の良い方法ではありませんが、

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

あなたがWarbler::Jar#add_init_fileをオーバーライドすることができます:あなたは敗北する必要がある唯一のものは、warファイル内META-INF/init.rbにマージされます。このrails.erbテンプレートですRailsのテンプレートを削除するには、あなたのconfig/warble.rbの最上部に次のように:

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 
+0

ありがとうございました!ところで、META-INF/init.rbのRailsテンプレート(rails.erb)の目的は何ですか?それを取り除くことによる悪影響はありますか? –

関連する問題