Ruby on Rails – Validations – Linux

Publicado: 15 de janeiro de 2015 em Ruby on Rails

O Active Record possui algumas funcionalidades que visam facilitar a validação de campos e economizar tempo do desenvolvedor na criação da interface com o usuário. O Rails utiliza validações de nível de modelo, está é a melhor maneira de garantir que apenas dados válidos serão salvos em seu banco de dados, pois dados essenciais não podem ser ignorados pelos usuários finais. Rails torna as validações fáceis de usar, fornecendo uma base para ajudar nas necessidades comuns, e também permite que você crie seus próprios métodos de validação.

Validate: http://guides.rubyonrails.org/active_record_validations.html

Validando Campos Obrigatórios

Neste walkthrough utilizamos somente os campos de presença, mas você pode executar outros tipos de validações, você pode ver algumas delas clicando aqui.

1 – Crie um projeto do tipo Rails para o banco de dados MySQL e configure seu projeto corretamente para que seja exibida uma visão da pagina índice de sua aplicação. Tenha certeza que você configurou tudo, use as instruções abaixo para criar o controlador e o modelo:

rails g controller meucontrole index

rails g model modelo01 nome:string sobrenome:string cargo:string salario:float

rake db:migrate

rails server
Rails - Console

Rails – Console

2 – Se estiver utilizando a IDE Aptana Studio, você criará por padrão um projeto para o banco de dados SQLite3, você precisa mudar manualmente o arquivo de conexão (figura acima) e adicionar o GEM chamado mysql2, use a figura abaixo para referencia:

Rails - Aptana - Gem - Mysql2

Rails – Aptana – Gem – Mysql2

3 – Após configurar o arquivo de rotas, utilize os códigos abaixo para preencher seu respectivos arquivos do modelo, visão e controlador. Rode sua aplicação e a chame no navegador e você pode ver que os campos são de preenchimento obrigatórios:

Rails - Model - Validation

Rails – Model – Validation

4 – Uma vez que todos os campos satisfazerem a condição de presença do modelo, o registro será inserido com sucesso no banco de dados:

Rails - Active Record - Save

Rails – Active Record – Save

Exemplo:

Neste exemplo criamos um projeto Rails e utilizamos o controlador para exibir um formulário de campos obrigatórios.

Ruby on Rails

Modelo – modelo01.rb

class Modelo01 < ActiveRecord::Base
  
  # Cria validação
  validates  :nome, :sobrenome, :cargo, :salario, :presence => true
  
end

View – index.html.erb

<h1>Desenvolvimento Aberto</h1>
<h2>Ruby on Rails - Validate </h2>
 
<%= form_for @modelo, :url => {:action => :create} do  |cad|%>
 
 <% if @modelo.errors.any?  %>
       <h3>Erros:  </h3>
       <ul style="color:red">
          <% @modelo.errors.full_messages.each do |menssagem| %>
          <li> <%= menssagem %> </li>
          <% end %>
       </ul>
    <% end %>

    <p>
        <%= cad.label :nome%> <br />
        <%= cad.text_field :nome%>
    </p>

    <p>
        <%= cad.label :sobrenome%> <br />
        <%= cad.text_field :sobrenome, :size => "35x10"%>
    </p>
 
    <p>
        <%= cad.label :cargo%> <br />
        <%= cad.text_field :cargo, :size => "30x10"%>
    </p>
 
    <p>
        <%= cad.label :salario%> <br />
        <%= cad.text_field :salario, :size => "15x10"%>
    </p>
 
   
    <p> <%= cad.submit "Adicionar dados" %></p>
 
<% end %>

Controller- meucontrole_controller.rb

class MeucontroleController < ApplicationController

  # Controladores
  def index
    @modelo  = Modelo01.new
  end

  def new
    @modelo  = Modelo01.new
  end

  # Cria registro
  def create
    @modelo = Modelo01.new(modelo_params)
    if @modelo.save

      # Você pode colocar uma menssagem aqui.
      render "index"
    else
      render "index"
    end
  end

  # Define parametros requeridos
  private

  def modelo_params
    params.require(:modelo01).permit(:nome, :sobrenome, :cargo, :salario)
  end

end

Routes- routes.rb

Rails.application.routes.draw do
  
  get 'meucontrole/index'

  # Define rota do controle
  resources :meucontrole  
 
end


Publicidade

Deixe um comentário

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

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. 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 )

Conectando a %s