Warbler 希望您在创建 WAR 时指定 RAILS_ENV。然后将其放入生成的 WAR 的 web.xml 中。
但是,如果您可以创建一个从环境中学习其 RAILS_ENV 的 wAR,那么您可以创建一个可用于登台或生产的 WAR - 换句话说,一种高级管理制度,可以在其中测试和部署 WAR 而无需更改.
JRuby-Rack 已经设置为在将内容放入 web.xml 之前从 RAILS_ENV 读取,因此该部分是金色的。你唯一需要打败的是这个rails.erb
模板,它被合并到META-INF/init.rb
war文件中:
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