[RoR] Como gerar models
3 set 2011(há 14 anos)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 maquinagem list rails
e em seguida criei meu projeto com o comandorails [version] new producer
, onde version se eu quisesse criar um projeto na versão 3.1.0 iria executarrails _3.1.0_ new producer
ou apenasrails new producer
porque no meu caso é a ultima versão instalada.
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