FeaturesPluginsDocs & SupportCommunityPartners

Criando um weblog Ruby em dez minutos

Neste tutorial, use o suporte a Ruby no NetBeans IDE para criar e executar uma aplicação Web simples. O exemplo mostra como criar um weblog Ruby. Siga o fluxo de trabalho básico de criação de modelo, adição de controlador e criação de visualização.

Conteúdo

O conteúdo desta página se aplica ao IDE NetBeans 6.0
Requisitos do tutorial
Criando o banco de dados de amostra
Criando o projeto Ruby on Rails
Configurando o ambiente do banco de dados
Criando o modelo
Migrando o banco de dados
Criando um controlador
Executando a aplicação
Fazendo mais: Adicionando outro campo
Fazendo mais: Validando entrada
Fazendo mais: Deixando a lista com aparência de blog

Requisitos do tutorial

Este tutorial requer as tecnologias e os recursos seguintes:

Observação: este tutorial, escrito para o Rails 1.2.5, envolve scaffolding. Não há suporte para scaffolding a partir do Rails 2.0.

Criando o banco de dados de amostra

Observação: este tutorial usa o servidor de banco de dados MySQL. Consulte Instalando e configurando suporte a Ruby para obter informações sobre o uso de um servidor de banco de dados MySQL em uma aplicação Ruby. Este documento também contém dicas sobre como usar o servidor de banco de dados Java DB.

Antes de criar o projeto Ruby on Rails, crie um banco de dados rubyweblog_development, conforme descrito a seguir.

  1. Abra uma janela de comando.
  2. Caso ainda não tenha sido iniciado, inicie o servidor de banco de dados MySQL.
  3. Digite o seguinte comando para criar o banco de dados de desenvolvimento e pressione Enter.
    mysqladmin -u root -p create rubyweblog_development
    Observação: se o usuário raiz não tiver uma senha obrigatória, omita o argumento -p.

Criando o projeto Ruby on Rails

Comece criando um projeto Ruby on Rails. Por padrão, a aplicação é criada em uma estrutura de diretórios que esteja de acordo com as convenções do projeto Ruby on Rails para aplicações.
  1. No NetBeans IDE, escolha Arquivo > Novo projeto.
  2. Selecione Ruby no campo Categorias e Aplicação Ruby on Rails no campo Projetos. Clique em Próximo.

    Observação: na primeira vez que um projeto Ruby é aberto ou criado no IDE, o IDE verifica se há outras instalações do Ruby além do software JRuby fornecido. Caso haja, o IDE exibe uma caixa de diálogo solicitando que você selecione qual software deseja usar. Escolha JRuby se você desejar usar o intérprete JRuby fornecido ou escolha a sua instalação do Ruby, caso prefira utilizá-la. Para obter mais informações, consulte Configurando o IDE para usar sua própria instalação do Ruby no tutorial Instalando e configurando Ruby.
  3. Digite rubyweblog no campo Nome do projeto. Aceite todas as outras configurações padrão.
  4. Clique em Terminar para criar o novo projeto.

    O IDE cria o diretório do projeto com o mesmo nome do projeto. Você verá o seguinte:

    • As categorias básicas da aplicação na janela Projetos. Os nós particularmente interessantes são: Controladores, Modelos e Visualizações. Neste tutorial, siga o fluxo de trabalho básico de criação de modelo, adição de controlador e criação de visualização.
    • Uma lista dos arquivos que fazem parte da aplicação na janela de saída. Você pode clicar em um link na janela de saída para abrir um arquivo na área de edição.
    • O arquivo database.yml na área de edição.

Configurando o ambiente do banco de dados

A próxima etapa é editar o arquivo database.yml, que já está configurado para usar o adaptador MySQL e o banco de dados de desenvolvimento. Não é necessário fazer qualquer configuração a menos que o usuário raiz requeira uma senha.
  1. Na área de edição, edite o arquivo database.yml fornecendo a senha na configuração do desenvolvimento.
  2. Salve e feche o arquivo database.yml.

    Observação: se o arquivo do host do sistema operacional não tiver localhost, use 127.0.0.1.

Criando o modelo

Aqui você usa o Gerador de Rails para criar um modelo para a aplicação. A aplicação rubyweblog requer um modelo Postagem para armazenar instâncias de postagens de blogs.

  1. Na janela Projetos, clique com o botão direito do mouse no nó Modelos e escolha Gerar.
  2. Na caixa de diálogo Gerador de Rails, digite Post title:string no campo Argumentos e clique em OK.

    O Gerador de Rails cria um modelo chamado Postagem. A janela de saída lista os arquivos criados como parte da geração do modelo:

    • app/models/post.rb. Um arquivo que possui os métodos do modelo Postagem. Este arquivo também é aberto na área de edição.
    • test/unit/post_test.rb. Um teste de unidade para verificar o modelo Postagem.
    • test/fixtures/posts.yml. Uma ferramenta de teste para preencher o modelo.
    • db/migrate/migrate/001_create_posts.rb. Um arquivo de migração para definir a estrutura inicial do banco de dados.

Migrando o banco de dados

O arquivo com o qual você trabalhará em seguida será o arquivo de migração, 001_create_posts.rb.
  1. Na janela de saída, clique no link do arquivo 001_create_posts.rb.

    O arquivo é aberto para mostrar o método self.up, que cria uma tabela chamada postagens e o método self.down, que desfaz a tabela postagens, conforme mostrado no seguinte código de exemplo:

    Código de exemplo 1: código para 001_create_posts.rb
    class CreatePosts < ActiveRecord::Migration
      def self.up
        create_table :posts do |t|
          t.column :title, :string
        end
      end
    
      def self.down
        drop_table :posts
      end
    end

  2. Na janela Projetos, clique com o botão direito do mouse no nó rubyweblog e escolha Migrar banco de dados > Para versão atual.

    Esta ação atualiza o banco de dados para incluir a tabela de postagens. A janela Saída indica quando a migração está completa.

Criando um controlador

Agora, use o Gerador de Rails para criar um controlador para interagir com o modelo Postagem. Neste tutorial, adicione código de scaffolding, que fornece uma interface de CRUD simples para criar, ler, atualizar e excluir entradas no blog.
  1. Na janela Projetos, clique com o botão direito do mouse no nó Controladores e escolha Gerar.

  2. Na caixa de diálogo Gerador de Rails, digite Blog no campo Nome. Deixe o campo Visualizações em branco. Clique em OK.

    Esta ação cria o arquivo blog_controller.rb e abre o arquivo na área de edição. Um nó blog_controller.rb é adicionado no nó Controladores na janela Projetos.
  3. Edite blog_controller.rb adicionando o seguinte código de scaffolding, que fornece uma aplicação CRUD simples em torno do modelo Postagem:

    Exemplo de código 2: código de blog_controller.rb
    class BlogController < ApplicationController
      scaffold :post
    end

Executando a aplicação

Agora, teste a aplicação.
  1. No nó Configuração, abra routes.rb. Encontre a linha:

    # map.connect '', :controller => "welcome"
    	
  2. Edite a linha removendo o sinal de comentário (#) e alterando welcome para blog.
  3. Expanda o nó Público, clique com o botão direito do mouse em index.html e escolha Excluir.

    index.html exibe uma página de boas-vindas padrão, que não é o que você deseja. Quando você exclui index.html, o Rails procura no routes.rb para descobrir qual página deve ser exibida, conforme definido no blog na etapa anterior.

  4. Escolha Arquivo > Salvar todos.
  5. Clique no botão Executar projeto principal na barra de ferramentas.

    Esta ação inicia o servidor WEBrick, que é parte da estrutura do Ruby on Rails e inicia o navegador da Web. Veja a seguir a primeira página da aplicação.

    Figura 1: Página inicial do rubyweblog

    Figura 1: Página inicial do WebLog Ruby
  6. Clique no link Nova postagem para exibir a segunda página da aplicação, mostrada abaixo.

    Figura 2: Página para criar uma nova postagem

    Figura 2: Página para criar uma nova postagem
  7. Indique um título e clique em Criar.

    Veja a seguir um exemplo de postagem de blog.

    Figura 3: Postagem de blog bem-sucedida

    Figura 3: Postagem de blog bem-sucedida

Fazendo mais: Adicionando outro campo

Aqui, você adiciona outro campo para que, além do campo Título, a tabela de postagens inclua uma coluna Corpo para fornecer o texto do blog. Você já deve estar familiarizado com as etapas de criação de um campo.
  1. Clique com o botão direito do mouse no nó de migração de banco de dados e escolha Gerar. Na caixa de diálogo Gerador de Rails, digite AddBody no campo Argumentos e clique em OK.

    O IDE cria o script de migração versionado 002_add_body.rb e abre o arquivo na área de edição.

  2. Abra uma linha em def self.up, digite mcol e pressione Tab.

    O IDE substitui o disparador mcol pelo seguinte modelo de código com 3 parâmetros:

    add_column :table, :column, :string
  3. Digite posts para substituir o primeiro parâmetro e pressione Tab. Digite body e pressione Tab novamente. Em seguida, digite text para susbtituir o terceiro parâmetro. A linha deve se parecer com a seguinte instrução:

    add_column :posts, :body, :text
    Esta migração adiciona uma coluna de corpo à tabela de postagens.
  4. Escolha Arquivo > Salvar todos.
  5. Clique com o botão direito do mouse no nó do rubyweblog e escolha Migrar banco de dados > Para versão atual.

    Como alternativa, clique com o botão direito do mouse no arquivo de origem e escolha Executar do menu pop-up.
  6. Retorne ao navegador e clique no link Nova postagem para ver como o Ruby reconhece o novo campo de corpo, mostrado na figura a seguir.

    Figura 4: Nova postagem com campo de corpo

    Figura 4: Nova postagem com campo de corpo
  7. Crie mais algumas entradas de blog. Por exemplo:

    Figura 5: Mais postagens de blog

    Figura 5: Mais postagens de blog

Fazendo mais: Validando entrada

Aqui, adicione código à classe Postagem para garantir que os usuários forneçam valores para os campos de título e corpo.
  1. Na janela Projetos, expanda o nó Modelos e clique duas vezes em post.rb para abrir o arquivo no editor.
  2. Abra uma linha na definição Classe, digite vp e pressione Tab.

    O IDE substitui o disparador vp pelo seguinte modelo de código:
    validates_presence_of :attribute
  3. Digite title, :body. O código deve se parecer com a seguinte instrução:
    validates_presence_of :title, :body
  4. Execute a aplicação, clique em Nova postagem e, em seguida, em Criar.

    A aplicação agora informa que o título e o corpo não podem ficar em branco.

Fazendo mais: deixando a lista com aparência de blog

Até agora, o método de scaffold usado no BlogController criou uma aplicação CRUD básica que permitiu que você testasse facilmente o modelo Postagem. Agora, gere as mesmas visualizações usadas pelo método scaffold para que você possa personalizar a interface de usuário.
  1. Na janela Projetos, clique com o botão direito do mouse no nó Visualizações e escolha Gerar.
  2. Na caixa de diálogo Gerador de Rails, escolha scaffold da lista suspensa Gerar.
  3. Digite Postagem no campo Nome do modelo e Blog no campo Nome do controlador. Deixe o campo Ações em branco. Selecione Sobrescrever para forçar o BlogController a ser regenerado e clique em OK.

    O IDE cria uma visualização para o modelo Postagem e lista o conteúdo na janela de saída.
  4. Expanda Visualizações > blog e abra list.rhtml, que é usado para mostrar a lista de entradas de blog. Exclua as marcas <h1> e <table> e substitua-as pelo seguinte código:

    Exemplo de código 4: código para list.rhtml
    <h1>O Ruby Blog</h1>
    
    <% @posts.each do |post| %>
      <h2><%= post.title %></h2>
      <p><%= post.body %></p>
      <small> <%= link_to 'Permalink', :action => 'show', :id => post %></small>
      <hr>
    <% end %>

    Para cada instância de uma ação post, este código produz um título, um corpo e um Permalink, como mostrado na Figura 6.

    Dica: liai (link com uma ação e um índice) é o disparador do seguinte modelo de código:
    <%= link_to "link text...", :action => "edit", :id => @item %>
  5. Execute a aplicação para ver a nova interface do modelo Postagem.

    Figura 6: Interface de modelo nova e aprimorada

    Figura 6: Interface de modelo nova e aprimorada
  6. Para exibir o blog com a entrada mais recente primeiro, inverta a ordem de classificação adicionando .reverse ao final de @posts em list.rhtml:

    	  <% @posts.reverse.each do |post| %>
    	  

    Quando você salvar o arquivo e atualizar o navegador, o blog será exibido conforme mostrado na figura a seguir.

    Figura 7: Postagens de blog em ordem inversa

    Figura 7: Postagens de blog em ordem inversa

Próximas etapas



>> Mais documentação do NetBeans Ruby


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Open ESB - The Open Enterprise Service Bus Powered by