Arquivo da categoria ‘Ruby on Rails’

O método gets nos possibilita questionar o usuário, criando um prompt para entrada de dados, assim que o usuário entrar com os dados e pressionar a tecla Enter, o programa retoma seu funcionamento armazenando os dados inseridos em uma variável de formato String.

Sendo o Ruby uma linguagem OO pura podemos utilizar as próprias variáveis que também são objetos para converter os valores de tipos diferentes para que possamos manipula-las da maneira correta, assim transformarmos por exemplo: strings para floats, afim de calcularmos algum valor e retornar o objeto para o formato string assim para que ele possa ser impresso no console.

Console - Ruby

Console – Ruby

Exemplo:

Neste exemplo criamos um cadastro fictício com objetos de tipos diferentes e os convertemos para efetuarmos um calculo com a entrada de dados do usuário para o valor do desconto que conseguimos através do método gets.

Ruby

# Desenvolvimento Aberto
# entrada.rb
 
# Cria e alimenta variaveis
codigo = 10
nome = "Alberto da Silva"
ativo = true
salario = 1556.00
 
#Usando mascaras e convertendo
#imprime as variaveis usando mascaras
puts "Codigo:  valor int:    " + codigo.to_s
puts "Nome:    valor strig:  " + nome
puts "Ativo:   valor boolean: " + ativo.to_s
puts "Salario: valor float:   " + salario.to_s
 
#Coleta valor do desconto
puts "\nDigite o valor do desconto:"
desconto = gets
 
#Calcula e converte desconto
salario = salario - desconto.to_f
 
#Imprime o resultado
puts "Valor do salario liquido: " + salario.to_s

A linguagem de programação Ruby é uma linguagem puramente orientada a objetos (pure object-oriented), o que significa que tudo em Ruby é um objeto. Isso mesmo, tudo! Se por outro lado, linguagens como C++ e Java são linguagens híbridas que dividem o mundo entre objetos e tipos primitivos. A abordagem híbrida resulta em melhor desempenho para algumas aplicações, mas a abordagem orientada a objetos pura é mais consistente e simples de usar.

Isso quer dizer que um numero inteiro em Java ou C++ é um tipo primitivo e não um objeto, em Ruby um numero inteiro é um objeto, por exemplo, caso você queira converter um numero inteiro literal (sem associação a uma variável) em uma String, simples, o numero também é um objeto e você converte-lo usando o método to string, assim : 1.to_s e este objeto será equivalente a “1”.

Objetos – Variáveis em Ruby

1 -Vamos criar um projeto Ruby utilizando a IDE Aptana Studio 3, clique em File e New Project e nomeie o projeto de Variáveis:

Novo Projeto

Novo Projeto

2 – Após criar o projeto, clique com o botão direito do mouse em cima do seu projeto, na arvore App Explore e escolha New File e nomeie o arquivo como var.rb:

Arquivo Ruby

Arquivo Ruby

3 -Digite o código abaixo e clique em Run para executar o programa:

Console Ruby

Console Ruby

Exemplo:

Neste exemplo criamos um programa Ruby utilizando os tipos básicos como Integer, Double, Strings e Boolean, utilizamos o objeto String() para converter os outros tipos para string para serem impressos na tela, utilizamos também o próprio objeto e seu método to_s para converter a variável para String já que tudo em Ruby é um objeto.

Ruby

# Cria Variáveis
# Em Ruby tudo é um Objeto

id = 1
codigo = 12533
nome = "Mario Luis da Silva"
cargo = "Analista de Sistemas"
salario = 3523.87
ativo = true

# Imprime as variáveis como string
# Visto que precisamos converte-las
# Utilizamos o método String()
# E o método do próprio objeto to_s

puts " ***** Cadastro de Funcionarios *****"
puts ""
puts "Id: " + String(id)
puts "Cod: " + codigo.to_s
puts "Nome: " + nome
puts "Cargo: " + cargo
puts "Salario: " + String(salario)
puts "Ativo: " + ativo.to_s

A linguagem de programação Ruby permite que você valide os campos do modelo a fim de criar algumas restrições, por exemplo na hora de inserir um novo registro no banco de dados o desenvolvedor pode prevenir campos em branco ou contendo uma sequencia de caracteres menores que a estipulada pelo programador. A instrução Validates permite além destas mencionadas, vários outros tipos de validações dos campos definidos no modelo.

Ruby on Rails - Validações

Ruby on Rails – Validações

Validando campos do Modelo

Para validar os campos do modelo precisamos usar o arquivo de modelo gerado na hora da criação do projeto, chamado empresa.rb. Também precisamos modificar o arquivo html responsável por inserir um novo registro no banco de dados, este arquivo se chama new.html.erb:

Arquivos Model e View

Arquivos Model e View

Exemplo:

Neste exemplo modificamos o arquivo de modelo para criar uma validação dos campos a serem inseridos no arquivo de visão responsável por criar um novo registro no banco de dados, utilizando o comando validate.

Ruby

Model – empresa.rb

class Empresa < ActiveRecord::Base

   # Escreve validação do Moldelo (Model) 

   # Validações:  codigo e nome obrigatório
   validates :codigo, :nome, :presence => true

   # Validações:  tamanho minimo do campo, cinco caracteres
   validates :nome, :length => { :minimum => 5}

   # Validações:  nome unico no banco de dados
   validates :nome, :uniqueness => true

end

View – new.html.erb

<h2> Adicionar nova Empresa </h2>

<%= form_for @empresa do |cad|%>

    <% if @empresa.errors.any?  %>
       <h3>Erros:  </h3>
       <ul>
       	  <% @empresa.errors.full_messages.each do |menssagem| %>
       	  <li> <%= menssagem %> </li>
       	  <% end %>
       </ul>
    <% end %>

	<p>
		<%= cad.label :codigo%> <br />
		<%= cad.text_field :codigo%>
	</p>

	<p>
		<%= cad.label :nome%> <br />
		<%= cad.text_field :nome%>
	</p>

	<p>
		<%= cad.label :site%> <br />
		<%= cad.text_field :site%>
	</p>

	<p>
		<%= cad.label :projeto%> <br />
		<%= cad.text_field :projeto%>
	</p>

	<p>
		<%= cad.label :tipo%> <br />
		<%= cad.text_field :tipo%>
	</p>

	<p>
		<%= cad.label :linguagem%> <br />
		<%= cad.text_field :linguagem%>
	</p>

	<p>
		<%= cad.label :descricao%> <br />
		<%= cad.text_field :descricao%>
	</p>

	<p> <%= cad.submit "Adicionar dados" %></p>

<% end %>

Para excluir um registro do banco de dados através de uma pagina da web, utilizando o conceito de persistência do ActiveRecord do framework Rails, basta simplesmente utilizar a instrução destroy dentro do método do mesmo nome no controlador referenciando sua rota pelo nome do verbo delete que nos fornece a ação do controlador sobre o nome empresas#destroy, que pode ser visto usando a instrução rake route no console do Aptana.

Destroy - rake route

Destroy – rake route

Deletando um Registro

Para deletar um registro do banco de dados MySQL precisamos modificar a visão da pagina Index, criar um link de seleção e incluir o método para deletar o registro escolhido alterando o arquivo do controlador.

1 – Altere o arquivo de visão chamado index.html.erb e o arquivo do controlador chamado empresas_controller.rb utilizando os respectivos códigos abaixo:

Deletar - MVC

Deletar – MVC

Exemplo:

Neste exemplo deletamos um arquivo selecionado na pagina índice e o deletamos através da ação de seu controlador.

Arquivo – index.html.erb

<h2>Desenvolvimento Aberto</h2>
<p>Lista de Blogs e Projetos Open Source</p>
<pre>
<table width="500">
<tr>
	<th>Cod:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Evento:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Excluir:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to empresa.nome, empresa %> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.site%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to "Editar", edit_empresa_path(empresa) %> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to "Deletar", empresa, :confirm => "Deseja apagar o registro?", :method => :delete  %> </td>

</tr>

<%end%>
</table>

<p> <%= link_to "Adicionar um novo registro", new_empresa_path %> </p>
</pre>

Arquivo – empresas_controller.rb

class EmpresasController < ApplicationController

  def index
    @empresas = Empresa.all
  end

  def show
    @empresa = Empresa.find(params[:id])
  end

  def new
    @empresa = Empresa.new
  end

  def create
    @empresa = Empresa.new(empresa_params)
    if @empresa.save
      redirect_to empresas_path :notice => "Seu registro foi criado com sucesso"
    else
      render "new"
    end
  end

  def edit
    @empresa = Empresa.find(params[:id])
  end

  def update
    @empresa = Empresa.find(params[:id])

    if @empresa.update_attributes(empresa_params)
      redirect_to empresas_path :notice => "Seu registro foi criado com sucesso"
    else
      render "edit"
    end
  end

  def destroy
    @empresa = Empresa.find(params[:id])
    @empresa.destroy
    redirect_to empresas_path :notice => "Seu registro foi deletado com sucesso"
  end

  private

  def empresa_params
    params.require(:empresa).permit(:codigo, :nome, :site, :projeto, :tipo, :linguagem, :descricao)
  end

end

 

A linguagem de programação Ruby e o framework Rails torna muito simples alterar dados em uma pagina web através dos controles EDIT e UPDATE do controlador MVC.

Nosso objetivo será criar uma nova visão (VIEW) para o modelo de dados “empresa” (MODEL) e utilizar as ações de edição e alteração do controlador (CONTROLLER) para manipular os dados contidos em nosso banco de dados MySQL.

Formulário de Edição

1 – Primeiro precisamos modificar a visão da pagina principal para que seja exibido um link para nossa pagina de edição que utiliza a rota do controlador criada anteriormente:

Indice

Índice

2 – Agora precisamos criar um novo arquivo de visão para exibir o formulário de alteração de dados chamado new.html.erb e precisamos modificar também o controlador para que seja executada ações requeridas.

Formulário de Alteração

Formulário de Alteração

Exemplo:

Neste exemplo criamos uma nova visão sobre a ação de edição do controlador para editar nossos dados.

Visão – index.html.erb

<h2>Desenvolvimento Aberto</h2>
<p>Lista de Blogs e Projetos Open Source</p>
<pre>
<table width="500">
<tr>
	<th>Cod:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Evento:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to empresa.nome, empresa %> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.site%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to "Editar", edit_empresa_path(empresa) %> </td>

</tr>

<%end%>
</table>

<p> <%= link_to "Adicionar um novo registro", new_empresa_path %> </p>
</pre>

Visão – edit.html.erb

<h2>Editar Empresa</h2>

<%= form_for @empresa do |cad| %>

    <p>
		<%= cad.label :codigo%> <br />
		<%= cad.text_field :codigo%>
	</p>

	<p>
		<%= cad.label :nome%> <br />
		<%= cad.text_field :nome%>
	</p>

	<p>
		<%= cad.label :site%> <br />
		<%= cad.text_field :site%>
	</p>

	<p>
		<%= cad.label :projeto%> <br />
		<%= cad.text_field :projeto%>
	</p>

	<p>
		<%= cad.label :tipo%> <br />
		<%= cad.text_field :tipo%>
	</p>

	<p>
		<%= cad.label :linguagem%> <br />
		<%= cad.text_field :linguagem%>
	</p>

	<p>
		<%= cad.label :descricao%> <br />
		<%= cad.text_field :descricao%>
	</p>

	<p> <%= cad.submit "Alterar dados" %></p>

<%end%>

Contolador – empresa_controller.rb

class EmpresasController < ApplicationController

  def index
    @empresas = Empresa.all
  end

  def show
    @empresa = Empresa.find(params[:id])
  end

  def new
    @empresa = Empresa.new
  end

  def create
    @empresa = Empresa.new(empresa_params)
    if @empresa.save
      redirect_to empresas_path :notice => "Seu registro foi criado com sucesso"
    else
      render "new"
    end
  end

  def edit
    @empresa = Empresa.find(params[:id])
  end

  def update
    @empresa = Empresa.find(params[:id])

    if @empresa.update_attributes(empresa_params)
      redirect_to empresas_path :notice => "Seu registro foi alterado com sucesso"
    else
      render "edit"
    end
  end

  private

  def empresa_params
    params.require(:empresa).permit(:codigo, :nome, :site, :projeto, :tipo, :linguagem, :descricao)
  end

end

Você pode utilizar o método Save em um controlador para salvar dados em um banco de dados. O método a seguir é parte integrante de dois posts anteriores e contem instruções de como criar um website MVC básico, o banco de dados, conexões e como criar uma pagina índice, você encontra os posts em sequencia decrescente de data na categoria Ruby on Rails.

Agora nosso objetivo é criar uma nova pagina VIEW para adicionar dados sobre o evento NEW do controlador.

Adicionar dados

Adicionar dados

Alteração do Projeto

  1. Crie uma nova pagina na pasta Views\empresas chamada new.html.erb.
  2. Utilize a pasta layout para alterar o arquivo de layout padrão para exibição da mensagem flash.
  3. Utilize os códigos abaixo para cada arquivo correspondente.

Exemplo:

Neste exemplo criamos uma nova pagina para exibir um formulário de entrada de dados para nossa tabela de empresas e utilizamos o controlador para criar a ação de salvar os dados no banco de dados MySql.

Html

Arquivo – index.html.erb

<h2>Desenvolvimento Aberto</h2>
<p>Lista de Blogs e Projetos Open Source</p>
<pre>
<table width="500">
<tr>
	<th>Cod:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to empresa.nome, empresa %> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.site%> </td>
</tr>

<%end%>
</table>

<p> <%= link_to "Adicionar um novo registro", new_empresa_path %> </p>
</pre>

Arquivo – new.html.erb

<h2> Adicionar nova Empresa </h2>

<%= form_for @empresa do |cad|%>

	<p>
		<%= cad.label :codigo%> <br />
		<%= cad.text_field :codigo%>
	</p>

	<p>
		<%= cad.label :nome%> <br />
		<%= cad.text_field :nome%>
	</p>

	<p>
		<%= cad.label :site%> <br />
		<%= cad.text_field :site%>
	</p>

	<p>
		<%= cad.label :projeto%> <br />
		<%= cad.text_field :projeto%>
	</p>

	<p>
		<%= cad.label :tipo%> <br />
		<%= cad.text_field :tipo%>
	</p>

	<p>
		<%= cad.label :linguagem%> <br />
		<%= cad.text_field :linguagem%>
	</p>

	<p>
		<%= cad.label :descricao%> <br />
		<%= cad.text_field :descricao%>
	</p>

	<p> <%= cad.submit "Adicionar dados" %></p>

<% end %>

Arquivo – layout\Application.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>DARails</title>
  <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
  <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
  <%= csrf_meta_tags %>
</head>
<body>

<% flash.each do |key, value|%>
<p><%= value %> </p>
<%end%>

<%= yield %>

</body>
</html>

Arquivo – empresas_controller.erb

class EmpresasController < ApplicationController

  def index
    @empresas = Empresa.all
  end

  def show
    @empresa = Empresa.find(params[:id] )
  end

  def new
    @empresa = Empresa.new
  end

  def create
    @empresa = Empresa.new(empresa_params)
    if @empresa.save
      redirect_to empresas_path :notice => "Seu registro foi criado com sucesso"
    else
      render "new"
    end
  end

  private

  def empresa_params
    params.require(:empresa).permit(:codigo, :nome, :site, :projeto, :tipo, :linguagem, :descricao)
  end

end

A linguagem de programação Ruby permite transformar dinamicamente um campo extraído do banco de dados em um link para uma pagina de sua preferencia.

Para utilizar este post é necessário criar a aplicação básica MVC criada no post anterior, para criar a aplicação utilize o link abaixo:

Instruções Ruby

Tag <% %>

Esta Tag permite que sejam escritos comandos Ruby em uma pagina HTML.

Link_to

Uma instrução Ruby que permite criar um link dinâmico em uma pagina HTML.

Controller

Um controller possui sete opções de ações que podem ser executadas, vamos utilizar a padrão chama INDEX que é responsável pela pagina principal do website e a ação SHOW que é responsável por mostrar o conteúdo de uma VIEW do website.

Programa básico:

MVC Ruby on Rails: https://desenvolvimentoaberto.wordpress.com/2014/06/01/websites-model-view-controller-mysql-ruby-on-rails-linux/

Website MVC

Pagina com os links criados à partir de uma tabela do banco de dados:

Pagina - Principal

Pagina – Principal

Pagina com os detalhes de cada link:

Pagina de Detalhes

Pagina de Detalhes

Nosso objetivo é modificar a aplicação criada no post anterior para que cada descrição do campo nome na pagina HTML principal seja transformada em um link para uma outra pagina que fornece mais detalhes sobre o assunto referido.

Primeiro conecte-se ao banco de dados DAprod e altere a tabela manualmente e modifique os dados utilizando o script abaixo.

  1. Utilize os script MySQL abaixo para alterar a tabela e os dados utilizados no website.
  2. Crie um novo arquivo de VIEW para a ação SHOW do CONTROLLER  chamado show.html.erb.
  3. Altere os códigos dos seus arquivos de acordo com os códigos abaixo.
  4. Inicie o servidor Rails utilizando o seguinte comando: rails server
  5. Digite no browser a seguinte url para utilizar o programa: http://localhost:3000/empresas/

Exemplo:

Neste exemplo criamos um website MVC com que exibe dados e a descrição dos dados em uma pagina de detalhes.

MySQL

-- Usa o banco de dados
use DAprod;

-- Verifica a tabela
select * from empresas;

-- Adiciona campos
alter table empresas add projeto varchar(30);
alter table empresas add tipo varchar(20);
alter table empresas add linguagem varchar(35);
alter table empresas add descricao varchar(100);

-- Altera dados
update empresas set projeto = 'DA-Samples',
					tipo = 'OpenSource',
					linguagem = 'Abap-Java-C#-Python-Ruby-C++',
					Descricao = 'TRN - Treinamento dirigido ao desenvolvedor'
				Where id = 1;

update empresas set projeto = 'DA-Tools',
					tipo = 'Free',
					linguagem = 'Abap-Java-C#-Python-Ruby-C++',
					Descricao = 'Samples - Ferramentas desenvolvidas a partir do projeto de treinamento'
				Where id = 2;

update empresas set projeto = 'DA-ERP',
					tipo = 'OpenSource',
					linguagem = 'Abap-Java-C#-Python-Ruby-C++',
					Descricao = 'DEV - Projeto ERP Integrado OpenSource'
				Where id = 3;

View – index.html.erb

<h2>Desenvolvimento Aberto</h2>
<p>Lista de Blogs e Projetos Open Source</p>
<pre>
<table width="500">
<tr>
	<th>Cod:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to empresa.nome, empresa %> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.site%> </td>
</tr>

<%end%>
</table>
</pre>

View – show.html.erb

<h1><%= @empresa.nome	%></h1>
<p>codigo: <%= @empresa.codigo%> Nome: <%= @empresa.projeto%> Tipo:<%= @empresa.tipo%> </p>
<p>Lingua: <%= @empresa.linguagem%></p>
<p>Criado em: <%= @empresa.created_at%></p>
<p>Desc: <%= @empresa.descricao%></p>

Controller – empresas_controller.rb

class EmpresasController < ApplicationController

  def index
    @empresas = Empresa.all
  end

  def show
    @empresa = Empresa.find(params[:id] )
  end

end

Routes – routes.rb

Rails.application.routes.draw do

  resources :empresas

end

Nosso objetivo é entender o conceito da arquitetura de software MVC na construção de um website atrelado a uma conexão com um banco de dados para exibir dados armazenados em tabelas, visto que está apresentação é voltada para sistema operacional Linux, mas vale ressaltar que o seu conteúdo é multi-plataformas, este modelo pode ser portado para Windows, Mac OS X e qualquer outra plataforma que suporte a linguagem de programação Ruby on Rails.

Model – View – Controller

Por padrão um projeto denominado Rails, possui a arquitetura MVC e este projeto pode ser criado de varias formas diferentes, em nosso caso vamos utilizar a IDE de desenvolvimento chamada Aptana Studio 3.

1 – Primeiro precisamos de um banco de dados MySQL, abra o MySQL WorkBench e crie e adicione os diretos adequados ao banco de dados DAprod.

Cria Database

Cria Database

2 – Abra a IDE Aptana e crie um novo projeto do tipo Rails, o nomeie de DA-Solution e marque o botão de radio chamado I´ll Generate my own code. Abra uma nova janela do terminal dentro da IDE Aptana utilizando a barra de ferramentas.

Solução - Projeto - Rails

Solução – Projeto – Rails

3 -Utilizaremos este primeiro projeto como uma solução e é preciso criar um novo projeto Rails para nosso website, na janela inferior do terminal digite os seguintes comandos:

Cria Projeto


rails new DA-Rails -d mysql
cd Da-Rails

Cria o Controller e a View (Controlador e Visão)

rails g controller empresas index

Cria o Model (Modelo)

rails g model empresa codigo:integer nome:string site:string

Cria a migração (Tabela no banco de dados)

rake db:migrate

Inicia o servidor Rails

rails server

4 – Configure o arquivo database.yml encontrado na pasta config e abra o browser e digite o endereço padrão do seu website: http://localhost:3000/empresas/index. Use o arquivo do mesmo nome logo abaixo para referencias de login com o banco de dados.

Website MVC Padrão

Website MVC Padrão

5 – Volte ao MySQL WorkBench. Para um melhor entendimento, vamos inserir as dados manualmente, visto que a tabela já foi criada automaticamente quando utilizamos o comando rake db:migrate. Insira as linhas de dados utilizando a segunda parte do script abaixo.

Inserindo Dados

Inserindo Dados

6 – De volta a IDE Aptana, agora vamos modificar os arquivos de controle e visão para exibir os dados referentes a migração do modelo, para isto utilize os códigos Ruby e Html encontrados abaixo para preencher seu arquivo de controle e sua visão e atualize o website.

Website - MVC - Dados

Website – MVC – Dados

Exemplo:

Neste exemplo criamos um website que possui uma pagina desenvolvida na arquitetura MVC e exibe dados contidos em um base da dados MySQL.

MySQL

Script – Criar banco de dados e direitos adequados

-- Cria banco de dados
Create database DAprod;

-- Cria privilegios para o usuário root
Grant all privileges on DAprod.*
to 'root'@'localhost' identified by 'p@55w0rd';

-- nivela privilegios
FLUSH PRIVILEGES;

-- Use está parte do script após criar o MODEL
-- Coloca o banco de dados em uso
use DAprod;
-- Mostra tabela criada pela migração
select * from empresas;

-- Insere dados
insert into empresas values
 (1, 1, 'Desenvolvimento Aberto',
        'https://desenvolvimentoaberto.wordpress.com/', CURDATE(), null);

insert into empresas values
 (2, 2, 'Desenvolvimento Aberto Tools',
        'http://desenvolvimentoabertotools.wordpress.com/', CURDATE(), null);

insert into empresas values
 (3, 3, 'Desenvolvimento Aberto ERP',
        'Em desenvolvimento - V1.0 - Alpha indisponivel', CURDATE(), null);

Arquivo de Conexão Ruby on Rails – database.yml

# MySQL.  Versions 5.0+ are recommended.
#
# Install the MYSQL driver
#   gem install mysql2
#
# Ensure the MySQL gem is defined in your Gemfile
#   gem 'mysql2'
#
# And be sure to use new-style password hashing:
#   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
#
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password: p@55w0rd
  socket: /var/run/mysqld/mysqld.sock

development:
  <<: *default
  database: DAprod

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: DA-Rails_test

# As with config/secrets.yml, you never want to store sensitive information,
# like your database password, in your source code. If your source code is
# ever seen by anyone, they now have access to your database.
#
# Instead, provide the password as a unix environment variable when you boot
# the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
# for a full rundown on how to provide these environment variables in a
# production deployment.
#
# On Heroku and other platform providers, you may have a full connection URL
# available as an environment variable. For example:
#
#   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
#
# You can use this database configuration with:
#
#   production:
#     url: <%= ENV['DATABASE_URL'] %>
#
production:
  <<: *default
  database: DA-Rails_production
  username: DA-Rails
  password: <%= ENV['DA-RAILS_DATABASE_PASSWORD'] %>

Arquivo – Controle – empresas_controller.rb

class EmpresasController < ApplicationController
  def index
    @empresas = Empresa.all
  end
end

Arquivo – Visão – index.html.erb

<h2>Desenvolvimento Aberto</h2>
<p>Lista de Blogs e Projetos Open Source</p>
<pre>
<table width="500">
<tr>
	<th>Cod:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.nome%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= empresa.site%> </td>
</tr>

<%end%>
</table>
</pre>

Model-view-controller (MVC), em português modelo-visão-controlador, é um modelo de arquitetura de software que separa a representação da informação da interação do usuário. O modelo (model) consiste nos dados da aplicação, regras de negócios, lógica e funções. Uma visão (view) pode ser qualquer saída de representação dos dados, como uma tabela ou um diagrama. É possível ter várias visões do mesmo dado, como um gráfico de barras para gerenciamento e uma visão tabular para contadores. O controlador (controller) faz a mediação da entrada, convertendo-a em comandos para o modelo ou visão. As ideias centrais por trás do MVC são a reusabilidade de código e separação de conceitos.

O que é Ruby?

Segundo os seus autores, a linguagem de programação Ruby foi influenciada pelo Perl, Smalltalk, Eiffel, Ada, e Lisp. Ruby suporta múltiplos paradigmas de programação, incluindo o funcional, orientada a objetos, e imperativo. Ruby também possui um sistema de tipo dinâmico e gerenciamento automático de memória. A sintaxe e alguns comandos do Ruby são parecidos com o Python.

O que é Rails ?

Rails é um framework de desenvolvimento de aplicações web escrito na linguagem Ruby. Ele é projetado para tornar os aplicativos de programação web mais fáceis, fazendo suposições sobre o que cada desenvolvedor precisa para começar. Ele permite que você escreva menos código enquanto faz mais do que muitas outras linguagens e frameworks. Desenvolvedores Rails experientes também relatam que torna o desenvolvimento de aplicações web mais divertido.

Hello World Rails!

Para criar sua primeira aplicação Ruby on Rails siga os seguintes passos:

1 – Abra a IDE Aptana Studio 3 e crie um novo projeto do tipo Rails chamado Demo-Rails, caso questionado utilize a senha de root para a criação do projeto:

Demo-Rails - Projeto

Demo-Rails – Projeto

2 – Após criar o projeto, na janela inferior, no prompt do Rails, digite o seguinte comando:


rails g controller hello

Cria Controle - MVC

Cria Controle – MVC

3 – No arquivo hello_controller.rb digite o código abaixo, na pasta app/view/hello crie um novo arquivo chamado index.html.erb e o preencha com o código html logo abaixo:

Html - Visão - MVC

Html – Visão – MVC

4 – Na pasta config, abra o arquivo chamado routes.rb e insira a linha abaixo:


resources :hello

Configuração - recursos

Configuração – recursos

5 – Agora você precisa iniciar o servidor Rails, digite no console:


rails server

Inicia Servidor

Inicia Servidor

6 – Para testar o seu servidor abra o seu browser e digite: localhost:3000.

Teste - Servidor - Rails

Teste – Servidor – Rails

7 – Para testar sua aplicação digite /hello após o endereço do seu servidor no browser.

Hello World Rails!

Hello World Rails!

Exemplo:

Neste exemplo utilizamos o modelo MVC para criar uma aplicação Ruby on Rails.

Ruby

Arquivo – hello_controller.rb

class HelloController < ApplicationController
   def index()

   end
end

Arquivo – index.html.erb

<!DOCTYPE html>
<html>
 <head>
   <title>Desenvolvimento Aberto</title>
</head>

<body>

<h1>Desenvolvimento Aberto</h1>
<br>
<p>Hello World Rails!!!</p>

</body>
</html>

Ruby on Rails

É um framework livre que promete aumentar velocidade e facilidade no desenvolvimento de sites orientados a banco de dados, uma vez que é possível criar aplicações com base em estruturas pré-definidas. Frequentemente referenciado como Rails ou RoR, o Ruby on Rails é um projeto de código aberto escrito na linguagem de programação Ruby. As aplicações criadas utilizando o framework Rails são desenvolvidas com base no padrão de arquitetura MVC (Model-View-Controller).

Além do Ruby vamos instalar o servidor web Apache, o banco de dados MYSQL, a ferramenta visual de manipulação do banco de dados MySQL Workbench, a IDE para Ruby on Rails chamada Aptana e ferramentas necessárias para a instalação do RoR.

Instalação dos Aplicativos

Para instalar somente o Ruby:

sudo apt-get install ruby

Ruby: https://www.ruby-lang.org/en/documentation/installation/

 

Para instalar o pacote de aplicativos contendo os softwares descritos acima abra o Terminal e digite os seguintes comandos:

sudo apt-get install ruby-dev

sudo apt-get install apache2

sudo apt-get install mysql-server

sudo apt-get install mysql-workbench

sudo apt-get install libmysqlclient-dev

sudo apt-get install sqlite3 libsqlite3-dev

sudo apt-get install libwebkitgtk-1.0-0

sudo apt-get install nodejs

sudo apt-get install rails

sudo gem install jquery-rails

sudo gem install coffee-rails

sudo gem install sqlite3

sudo gem install mysql

sudo gem install mysql2

sudo gem install bundler

Ubuntu

1 – Instalação MySQL, durante a instalação escolha uma senha de root:

 

MySQL - Instalar

MySQL – Instalar

2 – Instalação MySQL Workbench:

MySQL WorkBench

MySQL WorkBench

3 – Teste a conexão com o MySQL na ferramenta MySQL Workbench clicando no menu Database:

Conexão - OK

Conexão – OK

4 – Baixe o Aptana clicando aqui, descompacte em uma pasta e abra o seu executável clique em novo projeto Ruby, crie um novo arquivo, o nomeie como Hello.rb e digite o código abaixo:

Aptana - Ruby - Hello World

Aptana – Ruby – Hello World

Exemplo:

Neste exemplo escrevemos o clássico programa inicial chamado Hello World para a linguagem Ruby.

Ruby

# Desenvolvimento Aberto
# Ruby
# hello.rb

class HelloWorld
  def Hello()
    puts "Desenvolvimento Aberto"
    puts "Hello World"
  end
end  

HelloWorld.new().Hello()

Como criar meu primeiro programa Ruby on Rails?
Clique para criar seu primeiro programa Ruby on Rails.