segunda-feira, 6 de abril de 2009

Migrando de rails 2.0 para rails 2.3

A primeira coisa a se fazer é baixar a versão mais recente de rails que, até a presente data, é a 2.3.2. Para isto, execute o comando:

gem update rails

Por via das dúvidas, atualize também suas gems através do comando:

gem update

Se você possuia uma versão anterior, dentro do contexto da versão 2.0 de rails. É possível fazer a migração para 2.3 através de uma pequena 'gambiarra', mas que para mim foi suficientemente satisfatória. ..heheh :)

Isto porque as versões anteriores a 2.2 tiveram um método deprecado que informa com relação a cache_template_extensions. O erro que aparece quando você tenta executar o mongrel por exemplo é:

undefined method `cache_template_extensions=' for ActionView::Base:Class (NoMethodError)

SOLUÇÃO PROPOSTA


Antes uma breve observação: No meu caso deu certo, mas não estou garatindo que isto irá funcionar para qualquer aplicação. E muito menos ainda se for uma aplicação nas versões anteriores a 2.0.

O quê que eu fiz?

  • Simples. Uma vez com o rails na sua versão mais recente instalada, criei uma aplicação que chamei de corrigir:
rails corrigir
  • Então, da minha app_antiga, copiei todo o conteúdo das pastas: app, test e db.
  • Também copiei os dois arquivos necessários da minha antiga pasta config: database.yml e routes.rb
  • Em public, como de praxe deletei o index.html e copiei todo o conteúdo apenas da pasta stylesheets.
  • Muito importante foi a alteração em app/controllers. Pois o antigo arquivo application.rb passa se chamar de application_controller.rb. Então copiei todo o conteúdo do antigo application.rb para dentro do novo application_controller.rb.

Com estas modificações realizadas, foi o suficiente para que tudo desse certo e eu conseguisse fazer a migração tranqüilamente da versão 2.0.4 do rails para sua versão mais recente: rails 2.3.2!

domingo, 5 de abril de 2009

Gerando uma aplicação segura com rails 2.0.4

Considerando que você já tenha procedido com a instalação prévia do Ruby e do RubyGems. Atualmente se você executar o comando no terminal
gem install rails
Procederá com a instalação na versão 2.0.2 do rails.
No entanto, a versão 2.0.4 consiste de >correções importantíssimas, principalmente no rxml que previne ataque de DoS.

Para que rails 2.0.4 seja instalado, utilize o comando:

gem install -v=2.0.4 rails

Isto fará com que rails e todas as suas dependênciass da versão 2.0.4 sejam instaladas.
Nas versões 2.0, o procedimento de gerar um aplicativo é até mais simpless do que nas versões anteriores.
Como de praxe, o comando para gerar uma aplicação rails é o mesmo. Digite no terminal (unix) ou cmd (win32):

rails sua_app

O que muda é a partir daí!
Configure seu arquivo config/database.yml, então execute o comando do rake:

rake db:create:all

Este comando irá automaticamente gerar os bancos de dados para cada ambiente de desenvolvimento de sua aplicação.

A seguir, ao contrário das versões anteriores, você irá neste passo executar o scaffold, informando inclusive os campos que irão compor sua tabela na base de dados. Exemplo:

ruby script/generate scaffold Tabela campo1:string nome:string data:datetime mensagem:text verificar:integer

Este comando já irá gerar praticamente todo o esquema, inclusive pré-moldando os arquivos do migration. Após isto, execute o comando:

rake db:migrate

Rode sua aplicação e confira o resultado!

OBS.: Se você já possui uma versão 2.0 anterior, baixe esta gem do rails na versão 2.0.4 e modifique seu arquivo config/environment.rb na oitava linha para:

RAILS_GEM_VERSION = '2.0.4' unless defined? RAILS_GEM_VERSION