Você pode utilizar o método Save em um controlador para salvar dados em um banco de dados. O método a seguir é parte integrante de dois posts anteriores e contem instruções de como criar um website MVC básico, o banco de dados, conexões e como criar uma pagina índice, você encontra os posts em sequencia decrescente de data na categoria Ruby on Rails.
Agora nosso objetivo é criar uma nova pagina VIEW para adicionar dados sobre o evento NEW do controlador.
Alteração do Projeto
- Crie uma nova pagina na pasta Views\empresas chamada new.html.erb.
- Utilize a pasta layout para alterar o arquivo de layout padrão para exibição da mensagem flash.
- Utilize os códigos abaixo para cada arquivo correspondente.
Exemplo:
Neste exemplo criamos uma nova pagina para exibir um formulário de entrada de dados para nossa tabela de empresas e utilizamos o controlador para criar a ação de salvar os dados no banco de dados MySql.
Html
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> </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> </tr> <%end%> </table> <p> <%= link_to "Adicionar um novo registro", new_empresa_path %> </p> </pre>
Arquivo – new.html.erb
<h2> Adicionar nova 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 "Adicionar dados" %></p> <% end %>
Arquivo – layout\Application.html.erb
<!DOCTYPE html> <html> <head> <title>DARails</title> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> </head> <body> <% flash.each do |key, value|%> <p><%= value %> </p> <%end%> <%= yield %> </body> </html>
Arquivo – empresas_controller.erb
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 private def empresa_params params.require(:empresa).permit(:codigo, :nome, :site, :projeto, :tipo, :linguagem, :descricao) end end