Websites – MVC – Parte 2 – Table Fields to Html Link – MySQL – Ruby on Rails – Linux

Publicado: 7 de junho de 2014 em Ruby on Rails

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
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s