[RoR] Como gerar models

3 set 2011(há 13 anos)
DevelopmentRuby on Rails
#ruby-on-rails#rails

Como gerar models

Olá pessoal, ainda pouco despois de postar o Sistema de compras, resolvir fazer este post, mas tive alguns probleminha com a mais nova versão 3.1.0 do Ruby on Rails (RoR), consegui descobrir como criar um projeto em versões anteriores já instaladas. Bem, no ultimo post sobre RoR estava começando a instalar na minha maquina, isso pq estou estudando RoR e neste post vou monstrar um pouco do que eu aprendir nesse meio tempo, normalmente nos tutoriais é muito fácil achar scaffold básico que nada mais é, falando a grosso modo, um gerador de CRUD, vou tentar mudar um pouco e mostrar como gerar models, mas em breve irei falar sobre como gerar um scaffold.

Bem, uma das coisa que achei bem bacana é que não dependemos muito de IDE ou editores de textos para facilitar a programação em RoR na maioria dos casos os desenvolvedores RoR usa terminal e TextMate, existem opções para não usar o terminal, mas que é abominado pela comunidade e por min também, neste post vou usar o terminal e textmate, bem sem mais delongas, start.

Ferramentas usadas

OS: Ubuntu 11.04 com o bom terminal
Editor: TextMate
Rails: version 3.0.10
Base de Dados: sqlite

Start

1º Abra o terminal e execute as seguintes linha:

$ cd RailsProjects/
~/RailsProjects$ gem list rails 
*** LOCAL GEMS ***
rails (3.1.0, 3.0.10, 3.0.9, 3.0.8)
~/RailsProjects$ rails _3.0.10_ new producer

Naveguei até a pasta dos meus projetos ~/RailsProjects$, em seguida verifiquei quais versões estão instaladas na minha maquina gem list rails e em seguida criei meu projeto com o comando rails [version] new producer, onde version se eu quisesse criar um projeto na versão 3.1.0 iria executar rails _3.1.0_ new producer ou apenas rails new producer porque no meu caso é a ultima versão instalada.

 /></p>
<p><img src=

Alguns dos arquivos criados

2º Vamos executar o projeto para nos certificarmos que ocorreu tudo bem

~/RailsProjects$ cd producer
~/RailsProjects/producer$ rails s

Linha 1 navega para a pasta do projeto e na linha 2 inicia o servidor, agora é só abrir o navegador e acessar o localhost na porta 3000 http://localhost:3000/

Se aperecer essa tela está tudo certo

3º Pasta public existe um index.html vou deletar.

Criando o Model User

Vamos lá, por favor esqueçam o banco isso é problema do rails ele que se vire, iremos usar rails generate model User [attributes:type] a

~/RailsProjects/producer$ rails generate model User first_name:string last_name:string email:string
      invoke  active_record
      create    db/migrate/20110903161136_create_users.rb
      create    app/models/user.rb
      invoke    test_unit
      create      test/unit/user_test.rb
      create      test/fixtures/users.yml

Bem depois disso seu model está criado percebam que o gerador criou alguns aquivos, mas não criou o banco pois se necessário for poderíamos mudar alguns atributo e/ou configuração no db/migrate/20110903161136_create_users.rb

Agora vamos criar o banco de dados e verificar qual a versão do nosso banco de dados vamos usar o comando no terminal

~/RailsProjects/producer$ rake db:create
~/RailsProjects/producer$ rake db:version
Current version: 0

Como vocês podem ver a versão atual é 0, pq como eu já disse pode ser que haja necessidade de alterar o arquivodb/migrate/20110903161136_create_users.rb. Então agora vamos fazer a migração do base de dados.

~/RailsProjects/producer$ rake db:migrate
==  CreateUsers: migrating ====================================================
-- create_table(:users)
   -> 0.0014s
==  CreateUsers: migrated (0.0014s) ===========================================

Repare que se agora executar rake db:version a versão do banco não será a mesma e sim o números na frente do arquivo 20110903161136_create_users.rb

 ~/RailsProjects/producer$ rake db:version
Current version: 20110903161136

Depois de tudo isso agora é só brincar com seus objetos vamos ver isso executando o comando rails console

~/RailsProjects/producer$ rails console
Loading development environment (Rails 3.0.10)
ruby-1.9.2-p180 :001 > User.create
 => #
ruby-1.9.2-p180 :002 > User.class
 => Class
ruby-1.9.2-p180 :003 > User.new.class
 => User(id: integer, first_name: string, last_name: string, email: string, created_at: datetime, updated_at: datetime)
ruby-1.9.2-p180 :004 > User
 => User(id: integer, first_name: string, last_name: string, email: string, created_at: datetime, updated_at: datetime)
ruby-1.9.2-p180 :005 > User.create :first_name => "Walmir", last_name: "Neto", :email => "[email protected]"
 => #
ruby-1.9.2-p180 :006 >
ruby-1.9.2-p180 :007 >   User.all
 => [#, #]
ruby-1.9.2-p180 :008 > User.first
 => #

Conclusão

Isso é tudo pessoal em breve aquele velho scaffold, esse tutorial foi baseado nas video aulas da egenial.com.br/cursorails