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