Estou fazendo uma aplicação pra gerenciar as músicas que tenho aqui no meu computador, como o model não é do banco de dados e sim uma classe que criei e inseri no diretório models, essa classe tem chamadas aos métodos da classe Dir para mudar diretórios, varrer diretórios atrás de arquivos .mp3 etc. Resumindo manipula o sistema de arquivos do computador. Como o Rails usa caminhos relativos para referênciar arquivos e dependências quando eu rodava a aplicação que usava Dir.chdir, aparecia na tela uma mensagem que diz tanta coisa… Application Error! Mesmo no modo development, não verifiquei os logs logo de imediato, fui testando e descobri o culpado. Googlei e achei esse artigo sobre quase a mesma coisa que precisava. O autor relata o erro e dá a dica mas não foi por esse método, ele usou caminhos absolutos no sistema dele, como eu já estava com a classe pronta e não queria mudar toda a estrutura (que mudava de diretório), segui a dica dele e deu certo. Para que isto não aconteça ele sugere redefinir RAILS_ROOT, a variável onde fica o caminho relativo do Rails, para um caminho absoluto no arquivo environment.rb. Feito aí vai o que eu adicionei no início do arquivo.
# Change to absolute path the Rails root. Troca por caminho absoluto a raíz do Rails. RAILS_ROOT.sub!(/^\.\//, "D:/caminho_do_rails_aqui/");
Aí você substitui lá em “D:…” o caminho absoluto aonde sua aplicação Rails está rodando. Ah só pra lembra e deixar vocês curiosos estamos redefinindo uma constante! Mas como, num era constante?! É constante e continua sendo mas em Ruby as constantes assim como quase tudo pode ser modificado, nesse caso só gerará um alert.
Powered by ScribeFire.

Maio, 23 - 2007 às 10:12 pm |
Legal, não sabia que RoR dava pra fazer grande coisa na máquina local… O resto do artigo nem me serve, ainda nem consegui instalar o bicho hehehehe
Maio, 28 - 2007 às 1:17 pm |
É também pensava assim, mas pelo que vi deu certo, depois eu posto a classe que fiz. Se tiver problemas pra instalar grita aí hehe…