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