Introducao rubyonrails

18
Douglas Resende Camargo [email protected]

description

Introdução a Ruby on Rails

Transcript of Introducao rubyonrails

Page 1: Introducao rubyonrails

Douglas Resende [email protected]

Page 2: Introducao rubyonrails

MDL na RubyConf’12

Page 3: Introducao rubyonrails

Locawebets

Page 4: Introducao rubyonrails

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

Page 5: Introducao rubyonrails

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

Page 6: Introducao rubyonrails

MVC

Page 7: Introducao rubyonrails

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

Page 8: Introducao rubyonrails

Instalação

MAC OSX & UBUNTU

http://github.com/danielvlopes/ruby-unix/

WINDOWS

http://railsinstaller.org/

Page 9: Introducao rubyonrails

Iniciando um Projeto

# Criando uma aplicaçãorails new flisol -d postgresql

cd flisol/

# Inicia o servidorrails server

# URL local da aplicaçãohttp://localhost:3000/

Page 10: Introducao rubyonrails

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

Page 11: Introducao rubyonrails

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”

Page 12: Introducao rubyonrails

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

Page 13: Introducao rubyonrails

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”)

Page 14: Introducao rubyonrails

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

Page 15: Introducao rubyonrails

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+/

Page 16: Introducao rubyonrails

GEM

# Onde encontrarhttp://rubygems.org/

# Código fonte abertohttp://github.com/plataformatec/simple_form

# Instalando uma gemGemfile

gem “simple_form”

bundle install

Page 17: Introducao rubyonrails

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/

Page 18: Introducao rubyonrails

OBRIGADO!

Douglas Resende [email protected]