Rails Edge: application.rb renomeado para application_controller.rb
Hoje senti uma estranha sensação ao atualizar a versão do Rails de um projeto que estou desenvolvendo para o Edge. Após ter baixado a versão atualizada do Rails e atualizado meu projeto, tentei rodar o servidor (script/server) para verificar se tudo continuava funcionando. Foi quando me deparei com o seguinte erro:
.../vendor/rails/activesupport/lib/active_support/dependencies.rb:571:in `to_constant_name': Anonymous modules have no name to be referenced by (ArgumentError)
E um stack trace enorme…
Pensei por um momento: o que será que aconteceu? Versão nova do Rails com problemas? Não dá para acreditar.
Foi quando lembrei de tentar pelo console: o mesmo problema.
.../vendor/rails/activesupport/lib/active_support/dependencies.rb:571:in `to_constant_name':ArgumentError: Anonymous modules have no name to be referenced by
.../vendor/rails/activesupport/lib/active_support/dependencies.rb:435:in `load_missing_constant':NameError: uninitialized constant ApplicationController
Aqui tive um pouco mais de informação: uninitialized constant ApplicationController. Isso me levou a pensar: será que se eu renomear o application.rb para application_controller.rb funcionaria? E vualá.. A aplicação funcionou perfeitamente. Ufa!
Resolvi dar uma pesquisada apenas para confirmar a mudança, e encontrei a origem de tudo:
Rails: Changing application.rb to application_controller.rb
[PATCH] Change application.rb to application_controller.rb
Enfim, o nosso conhecido controller application.rb recebeu o novo nome application_controller.rb, um pouco mais no estilo Rails de ser, seguindo as convenções.


