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

9 comentários:

Paulo Cassiano disse...

Parabéns pelo blog!

Não sei se você já pensou nisso, mas, que tal se o teu blog fosse "focado em desenvolvimento usando Windows"?

Fica a sugestão ;-)

Forte abraço,

Anônimo disse...

Que ótimo! Mais um blog sobre Ruby on Rails, vou assinar o feed se você prometer mantê-lo sempre atualizado. Mas a dica é a seguinte, de tópicos sobre como iniciar com ruby on rails, a blogosfera já está cheia, vamos tentar inventar coisas novas, redigir artigos e dar dicas importantes, principalmente sobre nossa experiência do dia a dia, como dificuldades bobas, que as vezes nos consomem horas. Em meu blog vou buscar também traduzir alguns textos e tutoriais importantes.

Mas não perde a idéia! Dá continuidade!

Um abraço!

Maiconio disse...

Cara, de todos os blogs e tutorias que vi, este foi o único que realmente me ajudou. Explicou certinho o que eu estava fazendo de errado, e como corrigir!

Muito obrigado!

Thifacco disse...

Fala Diego, estou enroscado na instalação do SQLite3 desse tutorial. Já baixei o sqlite3.dll e o sqlite3.exe no site e copiei na pasta c:\ruby\bin, mas cada vez que eu executo o comando "gem install sqlite3-ruby" ele retorna o erro:

ERROR: error installing sqlite3-ruby:
ERROR: failed to build gem native extension.

C:/ruby/bin/ruby.exe extconf.r install sqlite3-ruby
checking for fdatasync() in rt.lib... no
checking for sqlite3.... no

nmake
'nmake' não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.

Gem files will remain installed in C:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4 for inspection.
Results logged to C:/ruby/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.4/ext/sqlite3_api/gem_make.out

Por favor me dê uma dica de como resolver isso?

thifacco@gmail.com
Um abraço!

Isaac Dias Boratino disse...

stou tendo exatamente o mesmo problema que o Thiago.

Na hora que vou instalar, ele da esses erros e nao instala o sqlite.. snif

Unknown disse...

Aparentemente as novas versões do sqlite3 não funcionam no windows.
Eu resolvi esse problema instalando versões mais antigas. Assim:

gem install sqlite3-ruby -v 1.2.3

gem install hpricot -v 0.6

Instalou normalmente.

Anônimo disse...

Para quem ainda estiver com problema para instalar o sqlite.

basta fazer o download dessa versão
http://www.sqlite.org/sqlitedll-3_6_10.zip

instala de boa

Paulo Cassiano disse...

Veja como a vida é: Ao pesquisar sobre a solução de um problema, acabei caindo no teu blog! ;-)

Bem, meu problema era o mesmo do Dimas, resolvi como ele sugeriu, mas para mim só deu certo depois que baixei da Internet a .DLL "sqlite3.dll" para a pasta C:\WINDOWS\System32...

Um abraço e muito obrigado pelo blog!

José Carlos Maciel disse...

Parabens pelo tutorial, vejo como o interessados em RoR estão crescendo.
Se me permite vou colocar um link para seu blog no meu.
www.jcmaciel.com
[]'s