SlideShare une entreprise Scribd logo
1  sur  105
Télécharger pour lire hors ligne
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

Contenu connexe

Similaire à Rails intro

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
 

Similaire à Rails intro (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
 

Dernier

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Dernier (15)

Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Rails intro