Websites – MVC – Parte 4 – UPDATE – MySQL – Ruby on Rails

Publicado: 11 de junho de 2014 em Ruby on Rails

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
Publicidade

Deixe um comentário

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

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. 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 )

Conectando a %s