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.
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.
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.
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.
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.
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> </th> <th>Empresa:</th> <th> </th> <th>Site:</th> </tr> <% @empresas.each do |empresa| %> <tr> <td><%= empresa.codigo%> </td> <td> </td> <td><%= empresa.nome%> </td> <td> </td> <td><%= empresa.site%> </td> </tr> <%end%> </table> </pre>