introducao rubyonrails
DESCRIPTION
Introdução a Ruby on RailsTRANSCRIPT
Douglas Resende [email protected]
MDL na RubyConf’12
Locawebets
História
Ruby Criada em 1993 por Yukihiro “Matz” Matsumoto
Somente em 1998 Ruby começou a aparecer no ocidente atraves de Dave Thomas e Andy Hunt
Em 2003, o framework Rails começou a ser escrito pelo Dinamarques David Hansson
Em 2004 Rails foi publicado
Em 2010 lançamento do Rails 3.0
Um pouco de Ruby
5.times { print “Blaaa” }> Cinco vezes imprima “Blaaa”
exit unless “flisol”.includes? “iso”> Termine a menos que “flisol” contenha(ou inclua) a palavra “iso”
[‘fred’, ‘guilherme’, ‘pedro’].each do |pessoa| puts pessoa.capitalizeend> Com as palavras ‘fred’, ‘guilherme’ e ‘pedro’: pegue cada pessoa e a imprima com a primeira letra maiúscula
MVC
Convenções - REST
Exibir/Buscar Criar Alterar Remover
REST/HTTP GET POST PUT DELETE
Rails (actions) show create update destroy
SQL select insert update delete
Instalação
MAC OSX & UBUNTU
http://github.com/danielvlopes/ruby-unix/
WINDOWS
http://railsinstaller.org/
Iniciando um Projeto
# Criando uma aplicaçãorails new flisol -d postgresql
cd flisol/
# Inicia o servidorrails server
# URL local da aplicaçãohttp://localhost:3000/
Estrutura de PastasArquivo Função
config/database.yml Contém informações para conexão com o banco de dados
config/routes.rb Rotas das requisições HTTP
app/controllers Arquivos escritos em Ruby da camada de controle
app/helpers Classes que facilitam algumas tarefas da view
app/models Arquivos escritos em Ruby da camada de modelo
app/views Contém uma pasta pra cada controller que sua aplicação tiver
db/migrate Arquivos de migração, usados para atualizar seu Banco de Dados
Scaffold
# Gerando modelo, controle e visõesrails generate scaffold user first_name:string last_name:string
db/migrate/20130426210526_create_users.rb
# Cria Banco de Dadosrake db:create
# Atualiza o Banco para versão mais novarake db:migrate
# Criando usuário via consoleUser.create first_name: “Maria”, last_name: “Silva”
Scaffold
config/routes.rb
app/controllers/users_controller.rb
app/views/users/*
app/models/user.rb
def full_name [first_name, last_name].join(“ “)end
Operações Básicas
# Quantidade de registros de usuáriosUser.count
# Primeiro registro de usuáriou = User.first
# Atributo first_nameu.first_name
# Método full_nameu.full_name
# Atualizar um atributou.update_attribute(:last_name, “Ultimo Nome”)
Validações
# Validando a presença de :first_namevalidates :first_name, :presence => true
# => trueUser.create(:first_name => “Jaum”).valid?
# => falseUser.create(:first_name => nil).valid?
# Mostrando errosu = User.createu.errors # => {:first_name=>[“can’t be blank”]}u.save # => falseu.save! # => ActiveRecord::RecordInvalid: Validation failed: First name can’t be blank
Validações
# Outros tipos de validação
validates_presence_of :name, :year
validates_numericality_of :year
validates_inclusion_of :year, :in => 2009..2099
validates_length_of :name, :minimum => 4
validates_format_of :name, :with => /[A-Z]\d+/
GEM
# Onde encontrarhttp://rubygems.org/
# Código fonte abertohttp://github.com/plataformatec/simple_form
# Instalando uma gemGemfile
gem “simple_form”
bundle install
Linkshttps://www.facebook.com/groups/rubyoncerrado/
http://rubyonrails.com/
http://apidock.com/ruby
http://www.ruby-doc.org/
http://guides.rubyonrails.org/
http://railscasts.com/
http://akitaonrails.com/
http://github.com/
http://why.nomedojogo.com/
OBRIGADO!
Douglas Resende [email protected]