domingo, 10 de fevereiro de 2008

Programando: "Hello World" no Ruby on Rails


Agora vamos ao que interessa: Programar! :)

Depois de instalar o Ruby e o Rails, e testar o servidor, vamos agora testar o Ruby on Rails! Para isso, iremos fazer uma aplicação qualquer. Como em qualquer outra linguagem, vamos fazer o "Hello World!" para começarmos :D

Teríamos que criar uma nova aplicação. Mas, para facilitar, iremos utilizar a aplicação já feita no artigo anterior, "projeto" (utilizada para testar o WEBrick).

Os controladores (controllers), onde são gerados os códigos, são encontrados na sub-pasta "app" (abreviação do inglês "application") no diretório da aplicação (projeto).


Fig.1: Pasta "controllers" (controladores)

Fig.2: Explorando a pasta "controllers"

Vamos agora gerar um arquivo para testarmos. Chamaremos de "teste" esse arquivo, onde conterá a classe controladora teste.

Na Prompt de Comando, dentro do diretório "projeto", digite:
ruby script\generate controller teste

Fig.3: Criando arquivo "teste"

Fig.4: Arquivo "teste" criado


Poderá ser visto na pasta controllers a nova classe gerada:
teste_controller

Fig.5: teste_controller


Se editarmos esse arquivo (teste_controller), veremos apenas um esqueleto da classe TesteController.

Fig.6: Definição da classe TesteController


Antes de incluir qualquer linha de código no esqueleto, aparecerá uma mensagem se tentarmos iniciar a aplicação. Para isso, inicialize o servidor (como mostrado no artigo anterior) e acesse:

http://localhost:3000/teste

Fig.7: Mensagem: "Ação desconhecida"

Já se tentarmos acessar um aplicativo inexistente, ele mostrará outra mensagem:

Fig.8: Aplicação inexistente: "Caminho errado"


Implementar o código da aplicação resolverá o problema da mensagem da figura 7. Então poderá pular o próximo passo e seguir com a implementação.
------------------------------------------------------------

Mas e se o problema for outro? Como devemos proceder?

Aí vai um problema típico:
"no such file to load -- sqlite3"

Fig.9: Mensagem de erro: "Arquivo fonte ausente"

Solução? Simples: É necessário ter a dll do SQlite3 instalada.

1º Baixe a SQlite: http://www.sqlite.org/sqlitedll-3_5_4.zip
2º Copie o arquivo sqlite3.dll para dentro da pasta
bin no diretório de instalação do Ruby
3º Instale-o com o
gem install sqlite3-ruby no Prompt de Comando

Fig.10: Pasta bin em ruby

Fig.11: Copiando a dll para a pasta bin

Fig.12: Instalando o SQlite3: gem install sqlite3-ruby

Depois de instalado, novamente acessaremos o http://localhost:3000/teste.Se a mensagem for a mesma da figura 7, então funcionou! Se não, reveja os passos e tente achar o erro.

------------------------------------------------------
------

Agora, vamos escrever código! :)

Dentro do esqueleto, vamos inserir o seguinte texto:

Fig.13: Escrevendo "Hello World"

Erro no código poderá gerar erro de sintaxe:
Fig.14: Mensagem de erro sintaxe

Lembrando que a partir do Rails 2.0 , não é utilizado mais o render_text, como também não utiliza mais o render_action. Algums sites ou tutoriais não alertam isso.
Fig.15: Utilizando método extinto: render_text

A utilização dos mesmos gerará erro:

Fig.16: Método indefinido: render_text

Mas, se foi utilizado o render :text como na figura 13, o resultado é:

Hello World:)

Veja mais:
"Ruby on Rails, web development that doesn't h..."
Anúncio do Ruby on Rails, feito pela Nectarine para a conferência webDU

Links relacionados:

http://algumasideias.net/tag/sqlite/
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=2
http://www.akitaonrails.com/2007/9/29/se-preparando-para-rails-2-0