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 %>



