Ontem meus aplicativos hospedados no bluehost estavam funcionando perfeitamente, mas hoje me deparo com o temido erro:
Application error
Rails application failed to start properly
Ou seja, “deu pau”. Creio que de madrugada foi feito um upgrade e algumas coisas pararam de funcionar.
Acessei minha conta via ssh e fui para a pasta “public” onde esta o aplicativo mais usado, e executei o seguinte comando para ver o que estava acontecendo:
./dispatch.cgi
O resultado foi o seguinte:
/usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:530:in `send': undefined method `cache_template_loading=' for ActionView::Base:Class (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/initializer.rb:530:in `initialize_framework_settings'
...
Procurando no google o que diabos era isso, descobri que o método “cache_template_loading=” não funciona mais no rails 2.2.2. A solução apontada é comentar a linha em config/environments/development.rb ou config/environments/production.rb, dependendo do seu caso:
# config.action_view.cache_template_loading = true
Maravilha! Ou não!!!
The page you were looking for doesn’t exist.
You may have mistyped the address or the page may have moved.
Ou se estiver em modo de desenvolvimento vai aparecer:
Routing Error
no route found to match “/seu_controller” with {:method=>:get}”
Já melhorou um pouco, mas o aplicativo ainda não está funcionando. Voltamos para o Google. Descobri que o problema pode ser por estar rodando o aplicativo em uma sub-pasta do meu domínio e preciso dizer isso para o servidor.
Para contornar mais este problema, acrescentei a seguinte linha no final do arquivo config/environment.rb:
ActionController::AbstractRequest.relative_url_root = "/subpasta_do_dominio"
Agora sim, up and running. Usuários felizes e aprendi mais um pouco de rails. Não sei se é a melhor solução, então caso alguém saiba uma maneira melhor de resolver coloque nos comentários.
