O que é Ruby on Rails?

Ruby on Rails é um framework que faz o desenvolvimento, implantação e manutenção de uma aplicação web mais fácil e esse utiliza uma linguagem orientada à objeto conhecida como Ruby. Para introduzi-lo é preciso que o desenvolvedor conheça algumas de suas filosofias. Essas são:

  • DRY-Don't Repeat Yourself: Em português "Não repita você mesmo", significa que enquanto o desenvolvimento no Rails tem a mesma parte do código, ou o mesmo propósito em entidades diferentes, isso quer dizer que existe uma melhor maneira de escrever sua aplicação;
  • Convention over Configuration: Em português "Convenção antes de Configuração", significa que invés de determinar a configuração, Rails possui convenções estruturais e nomeadas que implementam o often-cited principle of least surprese(POLS);
  • Less Software: Em português "Menos Software", significa utilização de mais convenções, menos códigos, menos complexidades e, consequentemente, menores quantidades de bugs.

Um framework é uma coleção de bibliotecas e ferramentas capazes de facilitar o desenvolvimento. Um bom framework fornece uma básica, mas completa, infraestrutura para construir uma aplicação. Esses fatos tornam o Rails um dos melhores. Afinal, este possui uma plataforma independente, completa e licenciada gratuitamente (open source).

O desenvolvimento das aplicações em Rails são implementadas usando o MODEL-VIEW-CONTROLLER, mais conhecido como arquitetura MVC e trabalhado com as bibliotecas Active Record, Action View e Action Controller. Estes serão citados abaixo no artigo.

O Modelo MVC

Esse padrão de arquitetura utilizada divide a aplicação logicamente em três categorias: modelo, vista e controle (Model-View-Controller). Cada parte do padrão MVC é uma entidade capaz de ser construída e testada separadamente. O modelo representa os dados, a vista representa a interface do usuário e o controle comanda as ações, ou seja, o modelo(model) é a informação que a aplicação trabalha, a vista (view) é a representação e o controle (controller) é o diretor da interação entre eles.

O ciclo dessa estrutura começa quando o usuário interage com a interface (view) e chama um evento; o controller recebe o chamado da view e acessa o model, atualizando frequentemente a interface.

Bibliotecas do Ruby on Rails

No Ruby on Rails, cada biblioteca tem uma tarefa especializada. Quando juntas, essas individuais entidades fazem o mapeamento diretamente do padrão MVC:

  • Active Record: Uma biblioteca responsável pela abstração e interação do banco de dados;
  • Action View: Um sistema de template que gera os documentos HTML que o usuário recebe como resultado de uma solicitação à aplicação;
  • Action Controller: Uma biblioteca parar manipular os dois: o fluxo e os dados do banco para serem exibidos na view.

A linguagem Ruby on Rails

Muitas outras linguagens requerem que você escreva o código e copile para checar os resultados e os erros. Porém, o Ruby é uma linguagem de programação consistente e elegantemente orientada à objeto e o melhor de tudo é a dinâmica, o que quer dizer que você trabalha com a linguagem "viva", ou seja, você receberá um feedback à cada comando dado.

O interpretador interativo é irb no Terminal(caso esteja utilizando Linux ou Mac) ou Cmd(Se está utilizando o Windows). Para começar uma sessão, digite:

  $ irb
  irb(main):001:0>

O Ruby possui um pacote chamado RubyGems responsável pelo gerenciamento do sistema com função de instalar bibliotecas e utilidades muito importantes para Rails. A partir da versão 2.0.0, não é necessário baixar separadamente porque ele já vem incluído.

Como instalar o Ruby on Rails

Para desenvolver em Rails no seu computador serão necessários três passos:

  • Instalar o Ruby;
  • Instalar o Rails;
  • Instalar o SQLite, que é o banco de dados padrão.

Serão necessárias algumas ferramentas, como por exemplo o git durante a instalação de pacotes e algumas gems que são bibliotecas de arquivos Ruby reusáveis.

Instalação do Ruby on Rails no Mac OS

Para instalar o Ruby on Rails no MAC (nesse artigo vamos usar a versão X 10.8 Mountain Lion), você deve ter em sua máquina:

  1. XCode: Este está disponível na App Store, gratuitamente e pode ser sua fonte para copilar seu código Ruby.
  2. Homebrew: é um pacote criado para OS X que é escrito em Ruby. Esse irá te ajudar a instalar outras partes. Para instalar entre no Terminal e digite o seguinte código:

    ruby <(curl -fsSkL raw.github.com/mxcl/homebrew/go)
  3. RVM: Agora você precisa instalar uma ferramenta comum do Ruby chamada Ruby Version Manager (RVM). Este irá ajudar a gerenciar versões de Ruby e várias gems que você talvez use em seus projetos. Como com o Homebrew, basta apenas um comando no Terminal:

    curl -L https://get.rvm.io | bash -s stable

    Se estiver usando o Mavericks e o código acima não funcionar, rode no terminal o seguinte código:

    ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"
  4. Ruby: A linguagem Ruby já vem pré instalada no seu Mac. 0 pacote 2.0.0 conta com RubyGem . Para checar, rode no Terminal o seguinte código:

    ruby -v

    Caso seja apresentada uma versão mais antiga da linguagem, então iremos atualizar para a versão 2.0.0. Use o seguinte código:

    rvm install 2.0.0

    Após o final da instalação, precisamos dizer ao RVM qual versão do Ruby nós queremos usar. Para isso será necessário digitar o seguinte código:

    rvm use 2.0.0

    Para testar se a sua máquina está trabalhando com tal número use o código a seguir:

    ruby -v

    O que irá retornar no terminal é: ruby 2.0.0p481 e outros dados que dependem de atualizações e horários de instalação.

  5. Rails: Finalmente, instalaremos o framework que precisa de apenas um comando:

    gem install rails

    Pronto! Você já tem o Ruby, Rails e SQLite no seu computador.

Como instalar Ruby on Rails no Windows

Para instalar o Ruby on Rails no Windows, vamos precisar seguir os procedimentos abaixo:

  1. Ruby: No Windows, começamos com a linguagem. Para instalar você precisará entrar no site http://www.rubyinstaller.org/downloads/
    De acordo com sua máquina, você clicará no Ruby 2.0.0-p481 ou Ruby 2.0.0-p481(x64). Após o download do installer, você irá clicar no icon, continuar e depois escolher onde quer que a pasta da instalação fique e o que gostaria de instalar junto com o pacote Ruby.

    • Td/Tk support: fornece ao Ruby uma interface gráfica para usuário (GUI = Graphical User Interface);
    • Add Ruby executables to your PATH: adiciona-se o ruby como executável;
    • Associate .rb and .rbw with this Ruby installation: arquivos com tal formato serão associados ao ruby.

    O recomendado é que os dois último sejam marcados. O Td/Tk support depois pode ser instalado e é utilizado para aplicações mais avançadas. Após o término, entre no command prompt(Iniciar > cmd) e digite o seguinte código:

    ruby --version

    A reposta deve ser: ruby 2.0.0p481 e outros dados que dependem de atualizações e horários de instalação.

  2. Rails: Como Ruby 2.0 conta com RubyGems, basta atualizarmos com o comando:

    gem update -system

    Para instalar o Rails, o comando gem pode demorar um pouco, então digite novamente no cmd:

    gem install rails

    Para checar:rails -v

  3. SQLite: Entre no site do SQLite:e baixe dois arquivos: sqlite e sqlitedll. Opte sempre pelos mais atualizados disponíveis. Esses arquivos estarão em formato .zip. Unzip os dois arquivos e os coloque dentro da pasta C:\Ruby20\bin ou onde você à colocou. Para saber se foi corretamente instalado, entre no cmd e digite o seguinte comando:

    sqlite3 -version

    A resposta será a versão do sqlite que você baixou. Para terminar ainda falta a instalação da biblioteca Ruby, que permite o contato entre ele e o SQLite. Para isso, escreva o seguinte código no prompt:

    gem install sqlite3-ruby

    Pronto! Você tem tudo instalado começar uma aplicação na sua máquina com Windows.

Instalação no Linux

Linux (e sistemas UNIX-based em geral) tem várias particularidades, mas também muito em comum. Essas instruções serão baseadas no Ubuntu Linux, mas devem ser aplicadas para a maioria de sistemas UNIX.

Antes de começar, é necessário atualizar seu Ubuntu. Abra o terminal e escreva o seguinte código:

$ sudo apt-get update

O programa apt-get possui um índice de cachede todos os programas e suas versões em um repositório para procura mais rápida. Rodando o comando update garante-se que essa lista será a mais recente possível.

Além disso, precisamos instalar os itens abaixo:

  1. Curl: É uma biblioteca que suporta questões que envolvem URL. Para facilitar iremos utilizá-la. Basta digitar no Terminal seguinte código:

    $ sudo apt-get install curl
  2. Ruby: Antes de instalar o Ruby, são necessárias algumas bibliotecas para os componentes que estão sendo instalados. Dê um enter com o comando:

    $ sudo apt-get install build-essencial curl

    Agora, como no Mac, iremos usar o Ruby Version Manager(RVM), para caso existam outras versões de Ruby instaladas na máquina. Digite o seguinte código:

    $ curl –L https://get.rvm.io | bash –s stable

    Para ter certeza que o Ruby já está na sua máquina digite o comando:

     ruby --version
  3. Rails: Agora as RubyGems já estão instaladas. Logo, coloque esse comando:

    $ gem install rails

    Depois de algum tempo, para verificar o Rails e sua versão use o código:rails --version

  4. SQLite: Com o apt-get apenas será necessário um comando:

    $ sudo apt-get install sqlite3 libsqlite-dev

    Se tudo ocorrer normalmente, você poderá verificar a versão da instalação com:$ sqlite –-version Agora para criar um relacionamento entre o Ruby e o SQLite vamos precisar de uma biblioteca Ruby que permite esse contato. Utilize o seguinte comando:

    $ sudo gem install sqlite3-ruby

    Pronto! Agora você pode começar a explorar e criar aplicações Rails no Linux Ubuntu.

Criando sua Primeira Aplicação Ruby on Rails

A partir de agora, independentemente de qual seja seu sistema operacional, você pode utilizar e seguir esse artigo na sua máquina.

Para criar projetos é preciso utilizar o terminal, onde você dará comandos seguidos da palavra rails dentro do diretório que deseja. Nessa parte do artigo iremos introduzir o que qualquer iniciante precisa fazer como sua primeira aplicação: um “Hello World”.

Lembre-se que você não precisa criar uma pasta para o projeto porque ao utilizar o comando new, uma pasta com o nome da aplicação será criada automaticamente. Então abra o Terminal, entre no diretório que deseje e digite:

$ rails new hello

Após esse comando serão criados vários arquivos dentro de um novo diretório hello gerado. O Terminal irá mostrar todas as pastas criadas e algumas delas são:

  create
  create README
  create Rakefile
  create config.ru
  create .gitignore
  create Gemfile
  create app
  create app/controllers/application_controller.rb
  create app/helpers/application_helper.rb
  create app/views/layouts/application.html.erb
  create app/mailers
  …

Observe que foi criado um subdiretório chamado app. Nele estão as views, models e controllers do padrão MVC que tiveram seus conceitos introduzidos nesse artigo.

Os helpers fazem parte das bibliotecas e irão ajudar o “relacionamento” entre views e controllers. No app também estarão os mailers que não foram citados antes, mas farão a parte de questões de e-mails da aplicação.

Agora iremos colocar o mini projeto no web server local para que esse possa ser testado. Não foi escrito nenhum código, porém, o Rails possui uma tela inicial pra você. Mas antes, tenha certeza que está dentro do diretório de sua aplicação no Terminal e que suas gems estão atualizadas. Para isso, use o seguinte código:

$ bundle install

Quando suas gems estiverem terminado a revisão e instaladas, escreva o código:

$ rails server

Ao inicializar, aparece o endereço de IP 0.0.0.0 na porta 3000. Não se assuste com esses zeros. Eles apenas significam que o servidor está rodando localmente na sua máquina enquanto roda no Terminal. Então entre em qualquer browser e acesse a URL http://www.localhost:3000/ e verá a página de Hello World do Ruby on Rails, como mostra a Figura 1.

Hello World Ruby
Figura 1. Boas-Vindas do Ruby

Gerando um Controller no Ruby on Rails

Primeiramente, pare o servidor local no Terminal pressionando Ctrl+C que irá deixa-lo na pasta do projeto. Agora, iremos criar um controller para enviarmos a mensagem Hello World.

O comando rails generate cria certos arquivos para seu projeto. Você está lidando com uma requisição e um ciclo de resposta para criar certos arquivos, logo você criará um controller responsável por saudar assim:

$ rails generate controller salutation

O controller e arquivos relacionados à ele, como views, test e helper, serão criados. Você poderia criar na mão, mas o generate acelera a produção.

Agora, para mostrar o “Hello World” será preciso modificar o arquivo app/controllers/salutation_controller.rb criando uma ação. Abra esse arquivo no seu editor e faça as seguintes mudanças:

  class SalutationController < ApplicationController
      def hello
         @message = ‘Hello World!’
      end
  end 

As ações são implementadas como métodos em Ruby, onde def é a chave. Dentro do método que você criou tem uma variável instanciada chamada message com o valor que colocaremos no browser.

Gerando um Template no Ruby on Rails

A ação foi criada com sucesso, logo, o próximo passo é adicionar algum HTML para ser mostrado na web. Com o padrão MVC, que separa os arquivos, esse código ficará nas views.

O padrão é sempre criar a view com o nome da ação no controller. Então, ao acessar app/views, você verá que o diretório salutation já foi criado, porém sem arquivos. Abra uma nova aba no seu editor, nomeie-o como hello.html.erb e salve-o dentro de app/views/salutation.

Você deve estar se perguntando porque o formato no final de um arquivo HTML é .erb. Esse formato faz parte do Erb Templating library, uma biblioteca do Rails responsável por permitir o uso de código Ruby dentro de um código HTML.

A sintaxe do Ruby é introduzida com <%= %>, quando mostrará um valor no HTML, ou <% %>, quando apenas terá lógica, conhecidas como Embedded Ruby output tags (em português, tags de saída).

Entre no arquivo app/views/salutation/hello.html.erb e adicione a seguinte sequência:

  <html>
    <body>
       <h1><%= @message %></h1>
    </body>
  </html>

Agora você deve avisar ao Rails como responder para o URL e a responsável será routes.rb localizada dentro do diretório config. No momento não se preocupe muito com detalhes, pois é apenas o início e ainda lhe faltam informações que serão dadas aos poucos. Abra config/routes.rb no editor de texto e substitua o que está escrito (não precisa apagar os comentários, esses tem # antes das frases):

  Hello::Application.routes.draw do
    get ‘:controller(/:action(/:id(.:format)))’
  end

Você está pedindo para que a mensagem seja mostrada no browser na URL http://localhost:3000/salutation/hello. Ao abrir, sua mensagem “Hello World!” estará aparecendo.

Espero que esse artigo tenha ajudado com a instalação e conceitos que são importantes para o desenvolvimento web.

Saiu na DevMedia!

  • Autenticação no ASP.NET MVC:
    Neste curso você aprenderá a implementar um mecanismo de autenticação em aplicações ASP.NET MVC. Criaremos aqui um projeto que contará com cadastro de usuários, login, logout e alteração de senha, recursos fundamentais para qualquer aplicação que possui áreas de acesso restrito a usuários logados.
  • Controle de acesso no Laravel com ACL:
    Neste curso vamos aprender como implementar um sistema de autorização utilizando o Laravel, framework PHP mais utilizado no mundo. Para isso, partiremos de uma aplicação que possui toda a parte de registro e autenticação de usuários.
  • ASP.NET MVC e Identity: Autorização de usuários com claims:
    Neste curso aprenderemos a implementar um mecanismo de controle de acesso usando o ASP.NET Identity, que nos permite atribuir papéis (roles) aos usuários e a partir disso definir quais páginas e menus ele pode visualizar.

Saiba mais sobre Ruby ;)

  • Padrões arquiteturais em Ruby:
    Este artigo demonstra o uso de ArchRuby para expressar padrões e boas práticas arquiteturais que, uma vez preservados, contribuem para a manutenibilidade do sistema de software.
  • Refatorações em Ruby: Utilizando a técnica Extract Class:
    Conheça a técnica de refatoração Extract Class e saiba como utilizá-la na linguagem Ruby para melhorar a qualidade do seu código.
  • Arrays e Blocos com Ruby utilizando o IRB:
    Veja neste artigo como desenvolver em Ruby utilizando Arrays e Blocos. Os Arrays possuem diversos métodos que ajudam a facilitar o trabalho dos desenvolvedores, enquanto os blocos estão entre as grandes novidades trazidas pelo Ruby.