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



