SlideShare ist ein Scribd-Unternehmen logo
1 von 105
Downloaden Sie, um offline zu lesen
Ruby on Rails:
Comedia en 3 actos
I.
Prólogo
O de cómo un lenguaje creado en
Japón y un framework hecho por un
tío danés pueden tener algo que ver
con tu vida.
“...Instalando que es gerundio...”   Linux
Windows
“...Instalando que es gerundio...”




                                     http://bitnami.org/stack/rubystack
Buenas intros
“...y se hizo Ruby...”




                         http://www.humblelittlerubybook.com/


                         http://www.ruby-lang.org/es/documentation/
Podéis tener abierto...
“...y se hizo Ruby...”




                         http://www.ruby-lang.org/es/documentation/quickstart/


                         http://railsapi.com/
“...y se hizo Ruby...”




                         Snippets
                         en Textmate e IRB
II.
Romance
O de cómo te puedes
enamorar de una
tecnología en 30 minutos.
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
                                                   1   # SQLite version 3.x
                                                   2   #   gem install sqlite3-ruby (not necessary on OS X Leopard)
                                                   3   development:
                                                   4     adapter: sqlite3
                                                   5     database: db/development.sqlite3
                                                   6     pool: 5
                                                   7     timeout: 5000
                                                   8
                                                   9   # Warning: The database defined as "test" will be erased and
                                                  10   # re-generated from your development database when you run "rake".
                                                  11   # Do not set this db to the same as development or production.
                                                  12   test:
                                                  13     adapter: sqlite3
                                                  14     database: db/test.sqlite3
                                                  15     pool: 5
                                                  16     timeout: 5000
                                                  17
                                                  18   production:
                                                  19     adapter: sqlite3
                                                  20     database: db/production.sqlite3
                                                  21     pool: 5
                                                  22     timeout: 5000
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




              Hello, Rails!
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




                            Scaffolding
“... en el principio reinaban las tinieblas...”
                                         Scaffolding
“... en el principio reinaban las tinieblas...”
                                        Migration
“... en el principio reinaban las tinieblas...”
                                        Migration
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




    (revisemos...)
                     Bingo!
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”




                  DRY
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
“... en el principio reinaban las tinieblas...”
                                                   1 class CommentsController < ApplicationController
                                                   2   def index
                                                   3     @post = Post.find(params[:post_id])
                                                   4     @comments = @post.comments
                                                   5   end
                                                   6
                                                   7   def show
                                                   8     @post = Post.find(params[:post_id])
                                                   9     @comment = @post.comments.find(params[:id])
                                                  10   end
                                                  11
                                                  12   def new
                                                  13     @post = Post.find(params[:post_id])
                                                  14     @comment = @post.comments.build
                                                  15   end
                                                  16
                                                  17   def create
                                                  18     @post = Post.find(params[:post_id])
                                                  19     @comment = @post.comments.build(params[:comment])
                                                  20     if @comment.save
                                                  21       redirect_to post_comment_url(@post, @comment)
                                                  22     else
                                                  23       render :action => "new"
                                                  24     end
                                                  25   end
                                                  26
“... en el principio reinaban las tinieblas...”
                                                  27      def edit
                                                       28      @post = Post.find(params[:post_id])
                                                       29      @comment = @post.comments.find(params[:id])
                                                       30    end
                                                       31
                                                       32    def update
                                                       33      @post = Post.find(params[:post_id])
                                                       34      @comment = Comment.find(params[:id])
                                                       35      if @comment.update_attributes(params[:comment])
                                                       36        redirect_to post_comment_url(@post, @comment)
                                                       37      else
                                                       38        render :action => "edit"
                                                       39      end
                                                       40    end
                                                       41
                                                       42    def destroy
                                                       43      @post = Post.find(params[:post_id])
                                                       44      @comment = Comment.find(params[:id])
                                                       45      @comment.destroy
                                                       46
                                                       47      respond_to do |format|
                                                       48        format.html { redirect_to post_comments_path(@post) }
                                                       49        format.xml { head :ok }
                                                       50      end
                                                       51    end
                                                       52
                                                       53 end
Intermedio
III.
Tocata y
fuga
O de cómo lo que parecía una sola cosa
es en realidad diferentes partes que
funcionan juntas y tienen su propia
alma.
“... sobre tí levantaré mi iglesia...”



                                         ActiveRecord
                                         ActionController
                                         ActionView
                                         Migrations
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




                                          validates_presence_of
                                         validates_uniqueness_of
                                          validates_associated
                                                  etc...
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




              Relaciones
“... sobre tí levantaré mi iglesia...”
“... sobre tí levantaré mi iglesia...”




                    La manera coñazo:
“... sobre tí levantaré mi iglesia...”




               Rails way:
“... sobre tí levantaré mi iglesia...”



                            Tipos
“... sobre tí levantaré mi iglesia...”
                                   belongs_to
“... sobre tí levantaré mi iglesia...”
                                   has_one
“... sobre tí levantaré mi iglesia...”
                                    has_many
“... sobre tí levantaré mi iglesia...”
                                   has_many :through
“... sobre tí levantaré mi iglesia...”
                                         has_many :through
“... sobre tí levantaré mi iglesia...”
                                   has_many :through como atajo
“... sobre tí levantaré mi iglesia...”

                                  Polimórficas
“... sobre tí levantaré mi iglesia...”
                                   Polimórficas
“... sobre tí levantaré mi iglesia...”   Metodos añadidos por las relaciones
“... sobre tí levantaré mi iglesia...”

                                 Metodos añadidos por las relaciones
“... sobre tí levantaré mi iglesia...”

                                 Callbacks
“... sobre tí levantaré mi iglesia...”

                                 Callbacks
“... sobre tí levantaré mi iglesia...”

                                 Extensiones
Querys
Escenario
Migraciones
Fin y Comienzo
Aitor García
aitor@linkingpaths.com
twitter.com/aitorgarciarey

Weitere ähnliche Inhalte

Ähnlich wie Ruby on Rails: Comedia en 3 actos

Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMjavier ramirez
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQLCésar Rodas
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]RootedCON
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoJuan Sacco
 
The Original Hacker número 11.
The Original Hacker número 11.The Original Hacker número 11.
The Original Hacker número 11.Huehue 1
 
Slides components en
Slides components enSlides components en
Slides components enJavier López
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAVíctor Bolinches
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edIgnacio Sorribas
 
Tecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-InjectionTecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-Injectionq3rv0
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007JuancaPompilla
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaAndrés Pizarro
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a proPlain Concepts
 

Ähnlich wie Ruby on Rails: Comedia en 3 actos (16)

Jruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVMJruby On Rails. Ruby on Rails en la JVM
Jruby On Rails. Ruby on Rails en la JVM
 
Introducción a Clojure
Introducción a ClojureIntroducción a Clojure
Introducción a Clojure
 
Introducción al mundo NoSQL
Introducción al mundo NoSQLIntroducción al mundo NoSQL
Introducción al mundo NoSQL
 
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
Abel Valero - VM + VFS = The Wooden Horse [rooted2018]
 
Historia de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan SaccoHistoria de los buffer overflows por Juan Sacco
Historia de los buffer overflows por Juan Sacco
 
Ruby para Java Developers
Ruby para Java DevelopersRuby para Java Developers
Ruby para Java Developers
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
The Original Hacker número 11.
The Original Hacker número 11.The Original Hacker número 11.
The Original Hacker número 11.
 
Slides components en
Slides components enSlides components en
Slides components en
 
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONAPARADIGMAS FP  Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
PARADIGMAS FP Y OOP USANDO TÉCNICAS AVANZADAS DE PROGRAMACIÓN ASÍNCRONA
 
Material taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4edMaterial taller de exploiting Navaja Negra 4ed
Material taller de exploiting Navaja Negra 4ed
 
Tecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-InjectionTecnicas de Blind-Mysql-Injection
Tecnicas de Blind-Mysql-Injection
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
 
Manual Técnico Para Hacer Réplica
Manual Técnico Para Hacer RéplicaManual Técnico Para Hacer Réplica
Manual Técnico Para Hacer Réplica
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
Docker: de principante a pro
Docker: de principante a proDocker: de principante a pro
Docker: de principante a pro
 

Kürzlich hochgeladen

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 

Kürzlich hochgeladen (10)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

Ruby on Rails: Comedia en 3 actos