Para excluir um registro do banco de dados através de uma pagina da web, utilizando o conceito de persistência do ActiveRecord do framework Rails, basta simplesmente utilizar a instrução destroy dentro do método do mesmo nome no controlador referenciando sua rota pelo nome do verbo delete que nos fornece a ação do controlador sobre o nome empresas#destroy, que pode ser visto usando a instrução rake route no console do Aptana.
Deletando um Registro
Para deletar um registro do banco de dados MySQL precisamos modificar a visão da pagina Index, criar um link de seleção e incluir o método para deletar o registro escolhido alterando o arquivo do controlador.
1 – Altere o arquivo de visão chamado index.html.erb e o arquivo do controlador chamado empresas_controller.rb utilizando os respectivos códigos abaixo:
Exemplo:
Neste exemplo deletamos um arquivo selecionado na pagina índice e o deletamos através da ação de seu controlador.
Arquivo – 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> <th> </th> <th>Excluir:</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> <td> </td> <td><%= link_to "Deletar", empresa, :confirm => "Deseja apagar o registro?", :method => :delete %> </td> </tr> <%end%> </table> <p> <%= link_to "Adicionar um novo registro", new_empresa_path %> </p> </pre>
Arquivo – empresas_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 criado com sucesso"
else
render "edit"
end
end
def destroy
@empresa = Empresa.find(params[:id])
@empresa.destroy
redirect_to empresas_path :notice => "Seu registro foi deletado com sucesso"
end
private
def empresa_params
params.require(:empresa).permit(:codigo, :nome, :site, :projeto, :tipo, :linguagem, :descricao)
end
end



