Ruby On Rails
Upcoming SlideShare
Loading in...5
×
 

Ruby On Rails

on

  • 794 views

Apresentado em 24/03/2008

Apresentado em 24/03/2008

Statistics

Views

Total Views
794
Views on SlideShare
793
Embed Views
1

Actions

Likes
0
Downloads
4
Comments
0

1 Embed 1

http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ruby On Rails Ruby On Rails Presentation Transcript

  • Ruby on Rails
  • O que é Ruby on Rails?
  • Ruby on RailsLinguagem + Framework
  • Um pouco de história
  • Características do Ruby
  • Princípios do Ruby
  • "Vocêdevefazercódigosqueresolvamseusproblemas, e nãoosproblemasdalinguagem e/ouinterpretador/compilador"
  • Exemplo de código
  • 5.times{ print “Hello!”}
    exit unless “restaurant”.include? “aura”
    [‘toast’,‘cheese’,‘wine’].each { |food| print food.capitalize }
  • class Person
    attr_reader:name#cria um getter para o atributoname
    attr_accessor:hair#cria getter e setter
    definitialize(name, hair)‏
    @name, @hair = name, hair
    end
    def walk
    “Walking”
    end
    end
    Lennon = Person.new(“John”, “Dark”)‏
    Lennon.class_evaldo
    def play_guitar
    “playing”
    end
    end
  • receita"Bolo de Fubá"do
    ingrediente"Farinha", "1 kilo"
    ingrediente"Açúcar", "200 gramas"
    ingrediente"Ovos", "2 unidades"
    preparo"Misture todos ingrediantes"
    preparo"Leve ao forno"
    preparo"Sirva"
    tempo"2 horas"
    porcoes 3
    end
  • Um pouco de História
  • Características do Rails
  • (Meta)Framework
  • Metaframework
    ActiveRecord
    ActionPack
    ActionMailer
    ActiveSupport
    ActiveResource
  • MVCModel-View-Controller
  • Extensível
  • Suporte a diversosBancos de dadosMySQL, PostgreSQL, SQLite, Oracle, SQL Server, DB2
  • Agilidade
  • publicActionForward execute(ActionMappingmapping, ActionFormform, HttpServletRequestrequest, HttpServletResponseresponse)
    throws Exception {
    TopicoFormtopicoForm = (TopicoForm)form;
    Topicotopico = newTopico();
    topico.setTitulo(topicoForm.getTitulo());
    topico.setDescricao(topicoForm.getDescricao());
    TopicoDAOMysqltopicoDao = newTopicoDAOMysql();
    try{
    topicoDao.adiciona(topico);
    }
    catch(Exception e){
    thrownew Exception("Erro ao adicionar topico " +e);
    }
    ActionForwardforward = mapping.findForward("Cadastrado");
    returnforward;
    }
    publicvoid adiciona (Topicotopico) throws Exception{
    Connection conn = null; 64
    ConexaoBDconBD = ConexaoBD.getInstancia();
    conn = conBD.getConnection();
    PreparedStatementpstmt = null;
    String sql = "";
    introwsAfected = 0;
    try {
    if (conn == null) thrownew Exception("Conexão não foi estabelecida.");
    sql = "insertintoTopicos (" + " titulo, descricao, data_postagem) " + " values((?), (?), now())";
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1,topico.getTitulo());
    pstmt.setString(2,topico.getDescricao());
    rowsAfected = pstmt.executeUpdate();
    if (rowsAfected <= 0) {
    thrownew Exception("Erro na inserção do tópico. Por favor, tente novamente.");
    }
    }catch(SQLException se) {
    thrownewSQLException("Erro em TopicoDAOMysql.adiciona(): " + se.getMessage());
    }catch (Exception e) {
    thrownew Exception("Erro em TopicoDAOMysql.adiciona(): " + e.getMessage());
    }finally {
    if(pstmt != null) pstmt.close();
    conBD.returnConnection(conn);
    }
    }
  • def create
    @topico= Topico.new(params[:topico])
    if@topico.save
    flash[:notice] = 'Topicocriado com sucesso.'
    redirect_to:action => 'list'
    else
    render :action => 'new'
    end
    end
  • Extraído de umanecessidade realBasecampda 37signals
  • FREE!
  • Princípios do Rails
  • DRY!Don't Repeat Yourself
  • CTRL + C / CRTL + V
  • Convention Over Configuration
  • Tradução de Convention Over Configuration
  • Maissobre Rails
  • Para onde o Rails vai?
  • Livros – Pragmatic Programmers
  • Livros – O’Reilly
  • LivrosemPortuguês
  • Cursos
    • Unisinos
    • TechOffice/POA
    • Target Trust/POA
    • E-Genial (EAD)
    • SENAC/SC
    • PUC/MG
    • Object Training/SP
  • Who’s on Rails?
  • RubyonRails já instalado no Mac OS X Leopard
  • Porque Ruby on Rails?
  • Show me the code!