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.