[RoR] Como gerar e validar scaffold

4 set 2011(há 13 anos)
DevelopmentRuby on Rails
#validate#scaffold#ruby-on-rails#rails

No último post vimos como criar models com RoR, agora daremos continuidade mostrando como fazer gerar um scaffold que, falando de um modo meio grosseiro, nada mais é que um gerador de CRUD, que gera controllers, models, views e a migração do banco de dados.

No post anterior foi criado o projeto producer e aproveitamos para criar também o model User, e como tinha prometido voltei para mostrar o scaffold, então sem muito blá blá blá, vamos lá...

Start

Para continuarmos , vou abrir o terminal e navegar até o projeto producer e gerar meu scaffold, vou gerar o classe Post com os atributos title, excerpt, body.

~$ cd RailsProjects/producer
~/RailsProjects/producer$ rails generate scaffold Post title:string excerpt:string body:text

Vejam que o scaffold criou varios arquivos, de migração do banco de dados, models, controllers, helper, estilos css, views, teste unitários entre outros, mas bem agora é hora de fazermos a migração do banco de dados.

Arquivos criados no Scaffold

Agora vamos executar um migrate para criar a tabela do banco de dados

~/RailsProjects/producer$ rake db:migrate
Relatório da criação da tabela post

Validação

Podemos testar acessando http://0.0.0.0:3000, ao tentar adicionar post, percebera que é possível adicionar um post em branco, por isso iremos editar o arquivo post.rb que está dentro da pasta app/models

class Post < ActiveRecord::Base
  # validação para campos em branco
  validates_presence_of :title, :body
end

Já que estamos falando de validação vamos fazer a validação dos model User:

class User < ActiveRecord::Base
  # validação para campos em branco
  validates_presence_of :email, :first_name, :last_name
  # validação para que os campos não se repita
  validates_uniqueness_of :email
  # validação para formato dos campos
  validates_format_of :email,
                      :with => /A([^@ ]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i
end

Conclusão

Agora tente adicionar e se tudo ocorreu bem você não conseguirá adicionar os campos em branco, caso queira o código deste tutorial clique aqui, bem, isso é tudo pessoal, to be continued...