omo posso executar ALGUNS inicializadores ao executar um ativo do Rails: pré-compila

Fund

Tenho um aplicativo que atualizei recentemente para o Rails 3.2.1 (do Rails 3.0.x) e refatorei os recursos JS e CSS para usar o novo pipeline de ativos. O aplicativo está hospedado no Heroku com a pilha Celadon Ceda

App Config

Mantenho a configuração específica do aplicativo em um arquivo YAML chamado app_config.yml e carrego-o em uma variável global APP_CONFIG usando um inicializador:

# config/initializers/load_app_config.rb

app_config_contents = YAML.load_file("#{Rails.root.to_s}/config/app_config.yml")
app_config_contents["default"] ||= {}
APP_CONFIG = app_config_contents["default"].merge(
                       app_config_contents[Rails.env] || {} ).symbolize_keys
Asset Compilation on Heroku

@Heroku tem suporte para o pipeline de ativos do Rails integrado à pilha Cedar. Quando você envia um aplicativo para o Heroku, ele chama automaticamenterake assets:precompile no servidor como uma etapa do processo de implantação. No entanto, isso é feito em um ambiente em área restrita sem acesso ao banco de dados ou vars ENV normai

Se o aplicativo puder inicializar normalmente durante a pré-compilação de ativos, será gerado um erro ao tentar se conectar ao banco de dados. Isso é facilmente resolvido adicionando o seguinte ao arquivo application.rb:

    # Do not load entire app when precompiling assets
    config.assets.initialize_on_precompile = false


Meu problem

Quandoinitialize_on_precompile = false está definido, nenhum dos inicializadores emconfig/initializers/* São executados. O problema que estou enfrentando é que preciso que a variável APP_CONFIG esteja disponível durante a pré-compilação do ativ

Como posso obterload_app_config.rb a ser carregado durante a compilação de ativos sem inicializar o aplicativo inteiro? Posso fazer algo com ogroup parâmetro passado para Rails :: Application.initialize! ?

questionAnswers(10)

yourAnswerToTheQuestion