Websites – MVC – Parte 3 – Save Data – MySQL – Ruby on Rails

Publicado: 9 de junho de 2014 em Ruby on Rails

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.

Adicionar dados

Adicionar dados

Alteração do Projeto

  1. Crie uma nova pagina na pasta Views\empresas chamada new.html.erb.
  2. Utilize a pasta layout para alterar o arquivo de layout padrão para exibição da mensagem flash.
  3. 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>&nbsp;&nbsp;</th>
	<th>Empresa:</th>
	<th>&nbsp;&nbsp;</th>
	<th>Site:</th>
</tr>
<% @empresas.each do |empresa| %>

<tr>
<td><%= empresa.codigo%> </td>
<td>&nbsp;&nbsp;</td>
<td><%= link_to empresa.nome, empresa %> </td>
<td>&nbsp;&nbsp;</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

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s