A linguagem de programação Ruby permite que você valide os campos do modelo a fim de criar algumas restrições, por exemplo na hora de inserir um novo registro no banco de dados o desenvolvedor pode prevenir campos em branco ou contendo uma sequencia de caracteres menores que a estipulada pelo programador. A instrução Validates permite além destas mencionadas, vários outros tipos de validações dos campos definidos no modelo.
Validando campos do Modelo
Para validar os campos do modelo precisamos usar o arquivo de modelo gerado na hora da criação do projeto, chamado empresa.rb. Também precisamos modificar o arquivo html responsável por inserir um novo registro no banco de dados, este arquivo se chama new.html.erb:
Exemplo:
Neste exemplo modificamos o arquivo de modelo para criar uma validação dos campos a serem inseridos no arquivo de visão responsável por criar um novo registro no banco de dados, utilizando o comando validate.
Ruby
Model – empresa.rb
class Empresa < ActiveRecord::Base # Escreve validação do Moldelo (Model) # Validações: codigo e nome obrigatório validates :codigo, :nome, :presence => true # Validações: tamanho minimo do campo, cinco caracteres validates :nome, :length => { :minimum => 5} # Validações: nome unico no banco de dados validates :nome, :uniqueness => true end
View – new.html.erb
<h2> Adicionar nova Empresa </h2> <%= form_for @empresa do |cad|%> <% if @empresa.errors.any? %> <h3>Erros: </h3> <ul> <% @empresa.errors.full_messages.each do |menssagem| %> <li> <%= menssagem %> </li> <% end %> </ul> <% end %> <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 %>