Skip to content

Instantly share code, notes, and snippets.

@Elicia
Last active February 23, 2024 22:56
Show Gist options
  • Select an option

  • Save Elicia/8530046 to your computer and use it in GitHub Desktop.

Select an option

Save Elicia/8530046 to your computer and use it in GitHub Desktop.

Revisions

  1. Elicia revised this gist Jan 27, 2014. 1 changed file with 6 additions and 2 deletions.
    8 changes: 6 additions & 2 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    ANEXO2: SCAFFOLDING EN RUBY ON RAILS
    ANEXO3: SCAFFOLDING EN RUBY ON RAILS
    ====================================

    Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a generar código de manera fácil y rápida utilizando scaffold en Ruby on Rails.
    @@ -117,4 +117,8 @@ created_at: "2013-03-06 02:01:31", updated_at: "2013-03-06 02:01:31">
    "2013-03-06 02:37:37", updated_at: "2013-03-06 02:37:37">, #<Micropost id: 2,
    content: "Second micropost", user_id: 1, created_at: "2013-03-06 02:38:54",
    updated_at: "2013-03-06 02:38:54">]
    >> exit
    >> exit

    No te preocupes si aún no entiendes bien el código por dentro, pues en el siguiente video lo explicaré mas a detalle todo el código generado así como el funcionamiento del MVC de nuestra aplicación, Asi q no se lo pierdan.

    Bueno amigos, eso fue todo por le video de hoy, espero q les haya gustado y no se olviden de seguirnos en nuestras redes sociales, envíennos sus comentarios, sugerencias y dudas que les responderemos en la brevedad posible. Hasta la proxima.
  2. Elicia revised this gist Jan 27, 2014. 1 changed file with 18 additions and 8 deletions.
    26 changes: 18 additions & 8 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -52,11 +52,6 @@ A continuación actualizaremos nuestra Base de datoscon los datos de los modelos
    >>>
    $ bundle exec rake db:migrate

    Si usas RVM hacer:

    >>>
    $ rake db:migrate

    Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s. Vemos nuestra aplicacion demo en localhost:3000
    @@ -75,7 +70,7 @@ URL Action Purpose

    Partimos de la pàgina para mostrar todos los users de nuestra app que en un principio no hay user.

    Un paseo por los Post
    Un paseo por los Posts
    ---------------------------

    De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.
    @@ -89,8 +84,8 @@ URL Action Purpose

    En un principio no hay posts.

    Un usuario tiene mucho Posts
    -------------------------------
    Un usuario has_many Posts
    -----------------------------

    Una de las caracteristicas de Rails es la capacidad de formar asociaciones entre diferentes modelos de datos. En nuestro caso cada user tiene nuchos posts. Podemos actualizar el modelo de user y el de posts como sigue.

    @@ -108,3 +103,18 @@ class Micropost < ActiveRecord::Base
    belongs_to :user
    end

    Podemos visualizar el resultado de esta asociación. Debido a que la columna user_id en la tabla post, Rails(mediante Active Record) puede infererir los post asociados a cada usuario.

    Por ahora podemos examinar las relaciones de asociación usuario-post utilizando la consola $ rails console y luego recuperamos el primer usuario de la base de datos utilizando User.first y se muestran en primer_usuario. Luego accedemos a los posts de ese usuario utilizando primer_usuario.posts. Active Record devuelve todos los posts con user_id igual que el id del primer_nombre. Mas adelante aprendermos màs sobre esto.

    >>>
    $ rails console
    >> first_user = User.first
    => #<User id: 1, name: "Michael Hartl", email: "michael@example.org",
    created_at: "2013-03-06 02:01:31", updated_at: "2013-03-06 02:01:31">
    >> first_user.microposts
    => [#<Micropost id: 1, content: "First micropost!", user_id: 1, created_at:
    "2013-03-06 02:37:37", updated_at: "2013-03-06 02:37:37">, #<Micropost id: 2,
    content: "Second micropost", user_id: 1, created_at: "2013-03-06 02:38:54",
    updated_at: "2013-03-06 02:38:54">]
    >> exit
  3. Elicia revised this gist Jan 27, 2014. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,8 @@ En esta sesion implementaremos el modelo de datos del user, junto con una interf
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,

    $rails generate scaffold User nombre:string email:string
    >>>
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  4. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,7 @@ En esta sesion implementaremos el modelo de datos del user, junto con una interf
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,

    $ rails generate scaffold User nombre:string email:string
    $rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  5. Elicia revised this gist Jan 27, 2014. 1 changed file with 0 additions and 1 deletion.
    1 change: 0 additions & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,6 @@ En esta sesion implementaremos el modelo de datos del user, junto con una interf
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,

    >>>
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
  6. Elicia revised this gist Jan 27, 2014. No changes.
  7. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ Nuestro recurso user será creado por un programa generador de código llamado s
    Entonces,

    >>>
    $rails generate scaffold User nombre:string email:string
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  8. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ Nuestro recurso user será creado por un programa generador de código llamado s
    Entonces,

    >>>
    rails generate scaffold User nombre:string email:string
    $rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  9. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -26,7 +26,7 @@ Nuestro recurso user será creado por un programa generador de código llamado s
    Entonces,

    >>>
    $ rails generate scaffold User nombre:string email:string
    rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  10. Elicia revised this gist Jan 27, 2014. No changes.
  11. Elicia renamed this gist Jan 27, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  12. Elicia revised this gist Jan 27, 2014. 1 changed file with 9 additions and 7 deletions.
    16 changes: 9 additions & 7 deletions Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -25,9 +25,8 @@ En esta sesion implementaremos el modelo de datos del user, junto con una interf
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,

    ::

    $ rails generate scaffold User nombre:string email:string
    >>>
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
    @@ -38,8 +37,8 @@ Implementación de Post
    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
    Entonces,

    ::
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer
    >>>
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.
    Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
    @@ -52,12 +51,15 @@ A continuación actualizaremos nuestra Base de datoscon los datos de los modelos

    >>>
    $ bundle exec rake db:migrate

    Si usas RVM hacer:

    >>>
    $ rake db:migrate

    Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s.
    Vemos nuestra aplicacion demo en localhost:3000
    Con esto podemos correr el servidor web local usando rails server o rails s. Vemos nuestra aplicacion demo en localhost:3000

    Un paseo por los Users
    -------------------------
  13. Elicia revised this gist Jan 27, 2014. 1 changed file with 4 additions and 8 deletions.
    12 changes: 4 additions & 8 deletions Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -18,8 +18,8 @@ Los usuarios de nuestro blog demo tendrán un único identificador entero llamad

    Como veremos mas adelante posts y users cada una corresponde a una tabla en una base de datos y sus atributos son columnas de cada tabla.

    El recurso User
    ------------------
    Implementación de User
    ----------------------

    En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    @@ -32,8 +32,8 @@ Entonces,
    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    El recurso Post
    ------------------
    Implementación de Post
    ------------------------

    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
    Entonces,
    @@ -106,7 +106,3 @@ class Micropost < ActiveRecord::Base
    belongs_to :user
    end





  14. Elicia revised this gist Jan 27, 2014. No changes.
  15. Elicia revised this gist Jan 27, 2014. 1 changed file with 3 additions and 3 deletions.
    6 changes: 3 additions & 3 deletions Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -6,9 +6,8 @@ Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video ap
    ¿Qué es Scaffold?
    ---------------------------

    Scaffold significa andamio en inglés. Ésta es una de las características que más enganchan en Rails ya que permite tener las funcionalidades básicas de administración de datos de un modelo en un controlador. Estas funcionalidades son las ya mencionadas, CRUD (Create, Read, Update, Delete), típicas de cualquier sistema transaccional.
    A éste método, se le denomina "scaffolding" y sirve para implantar de manera inmediata un entorno de administración temporal sobre el que trabajar. El scaffold o andamio generalmente es removido de la aplicación y sustituido por métodos propios en el controlador.
    Para el objetivo de este video crearemos dos modelo de datos demo para los usuarios y sus respectivos posts en un blog utilizando el generador de código scaffold.
    Scaffold significa andamio en inglés. Es un generador de código el cual nos permite tener las funcionalidades básicas de administración de un modelo, es decir el CRUD (Create, Read, Update, Delete), y que son típicas para cualquier sistema transaccional.
    Para el objetivo de este video crearemos dos modelo de datos demo para los usuarios y sus respectivos posts de un blog utilizando el generador de código scaffold.

    Modelando una demo de Users y Post
    --------------------------------------
    @@ -27,6 +26,7 @@ Nuestro recurso user será creado por un programa generador de código llamado s
    Entonces,

    ::

    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
  16. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -15,7 +15,7 @@ Modelando una demo de Users y Post

    Los usuarios de nuestro blog demo tendrán un único identificador entero llamado id, nombre (string) y un email (string). Y para nuestro post tendrá un único identificador entero llamado id, titulo (string) y contenido (string) y un atributo que asocia cada posts a un usuario en particular, esto es el atributo user_id.

    ![](https://dl.dropboxusercontent.com/u/47365355/post.jpg)
    ![](https://dl.dropboxusercontent.com/u/47365355/tabla.jpg)

    Como veremos mas adelante posts y users cada una corresponde a una tabla en una base de datos y sus atributos son columnas de cada tabla.

  17. Elicia revised this gist Jan 27, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -27,7 +27,7 @@ Nuestro recurso user será creado por un programa generador de código llamado s
    Entonces,

    ::
    $ rails generate scaffold User nombre:string email:string
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
  18. Elicia revised this gist Jan 27, 2014. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -25,8 +25,9 @@ El recurso User
    En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,

    ::
    $ rails generate scaffold User nombre:string email:string
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
    @@ -36,6 +37,7 @@ El recurso Post

    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
    Entonces,

    ::
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

  19. Elicia revised this gist Jan 27, 2014. 1 changed file with 0 additions and 3 deletions.
    3 changes: 0 additions & 3 deletions Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -26,20 +26,17 @@ En esta sesion implementaremos el modelo de datos del user, junto con una interf
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,
    ::

    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.


    El recurso Post
    ------------------

    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
    Entonces,
    ::

    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.
  20. Elicia revised this gist Jan 27, 2014. 1 changed file with 11 additions and 4 deletions.
    15 changes: 11 additions & 4 deletions Scaffolding en RoR.md
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,10 @@ El recurso User
    En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.
    Entonces,
    $ rails generate scaffold User nombre:string email:string
    ::

    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    @@ -35,7 +38,10 @@ El recurso Post

    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.
    Entonces,
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer
    ::

    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.
    Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
    Por el momento no consideramos las asociaciones entre User y Post, eso lo veremos mas adelante en este video.
    @@ -44,10 +50,13 @@ Migraciones
    ----------------

    A continuación actualizaremos nuestra Base de datoscon los datos de los modelos, por eseo debemos migrar la Base de Datos con RAKE.

    >>>
    $ bundle exec rake db:migrate
    Si usas RVM hacer:
    $ rake db:migrate
    Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s.
    Vemos nuestra aplicacion demo en localhost:3000

    @@ -70,15 +79,13 @@ Un paseo por los Post

    De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.


    >>>
    URL Action Purpose
    /posts index page to list all posts
    /posts/1 show page to show posts with id 1
    /posts/new new page to make a new post
    /posts/1/edit edit page to edit post with id 1


    En un principio no hay posts.

    Un usuario tiene mucho Posts
  21. Elicia renamed this gist Jan 27, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  22. Elicia revised this gist Jan 27, 2014. No changes.
  23. Elicia revised this gist Jan 27, 2014. 1 changed file with 0 additions and 14 deletions.
    14 changes: 0 additions & 14 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -24,11 +24,8 @@ El recurso User

    En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.

    Entonces,

    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.
    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    @@ -37,31 +34,21 @@ El recurso Post
    ------------------

    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.

    Entonces,

    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.
    Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    Por el momento no consideramos las asociaciones entre User y Post, eso lo veremos mas adelante en este video.

    Migraciones
    ----------------

    A continuación actualizaremos nuestra Base de datoscon los datos de los modelos, por eseo debemos migrar la Base de Datos con RAKE.

    $ bundle exec rake db:migrate

    Si usas RVM hacer:

    $ rake db:migrate

    Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s.

    Vemos nuestra aplicacion demo en localhost:3000

    Un paseo por los Users
    @@ -78,7 +65,6 @@ URL Action Purpose

    Partimos de la pàgina para mostrar todos los users de nuestra app que en un principio no hay user.


    Un paseo por los Post
    ---------------------------

  24. Elicia revised this gist Jan 27, 2014. 1 changed file with 25 additions and 7 deletions.
    32 changes: 25 additions & 7 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -7,9 +7,7 @@ Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video ap
    ---------------------------

    Scaffold significa andamio en inglés. Ésta es una de las características que más enganchan en Rails ya que permite tener las funcionalidades básicas de administración de datos de un modelo en un controlador. Estas funcionalidades son las ya mencionadas, CRUD (Create, Read, Update, Delete), típicas de cualquier sistema transaccional.

    A éste método, se le denomina "scaffolding" y sirve para implantar de manera inmediata un entorno de administración temporal sobre el que trabajar. El scaffold o andamio generalmente es removido de la aplicación y sustituido por métodos propios en el controlador.

    Para el objetivo de este video crearemos dos modelo de datos demo para los usuarios y sus respectivos posts en un blog utilizando el generador de código scaffold.

    Modelando una demo de Users y Post
    @@ -32,7 +30,6 @@ Entonces,
    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.

    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.


    @@ -46,15 +43,14 @@ Entonces,
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.

    Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    Por el momento no consideramos las asociaciones entre User y Post, eso lo veremos mas adelante en este video.

    Migraciones
    ----------------

    Para continuar debemos migrar la Base de Datos con RAKE.
    A continuación actualizaremos nuestra Base de datoscon los datos de los modelos, por eseo debemos migrar la Base de Datos con RAKE.

    $ bundle exec rake db:migrate

    @@ -66,7 +62,6 @@ Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s.


    Vemos nuestra aplicacion demo en localhost:3000

    Un paseo por los Users
    @@ -87,7 +82,7 @@ Partimos de la pàgina para mostrar todos los users de nuestra app que en un pri
    Un paseo por los Post
    ---------------------------

    De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.
    De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.


    >>>
    @@ -100,3 +95,26 @@ URL Action Purpose

    En un principio no hay posts.

    Un usuario tiene mucho Posts
    -------------------------------

    Una de las caracteristicas de Rails es la capacidad de formar asociaciones entre diferentes modelos de datos. En nuestro caso cada user tiene nuchos posts. Podemos actualizar el modelo de user y el de posts como sigue.

    >>>
    A user has many microposts.
    app/models/user.rb
    class User < ActiveRecord::Base
    has_many :microposts
    end

    >>>
    A micropost belongs to a user.
    app/models/micropost.rb
    class Micropost < ActiveRecord::Base
    belongs_to :user
    end





  25. Elicia revised this gist Jan 27, 2014. 1 changed file with 56 additions and 16 deletions.
    72 changes: 56 additions & 16 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -10,45 +10,85 @@ Scaffold significa andamio en inglés. Ésta es una de las características que

    A éste método, se le denomina "scaffolding" y sirve para implantar de manera inmediata un entorno de administración temporal sobre el que trabajar. El scaffold o andamio generalmente es removido de la aplicación y sustituido por métodos propios en el controlador.

    Para el objetivo de este video crearemos un modelo de datos demo para los post de un blog, mediante scaffold.
    Para el objetivo de este video crearemos dos modelo de datos demo para los usuarios y sus respectivos posts en un blog utilizando el generador de código scaffold.

    Modelando una demo de Post
    ---------------------------
    Modelando una demo de Users y Post
    --------------------------------------

    Un post para nuestra aplicación demo tendrán un único identificador entero llamado id, titulo (string) y contenido (string) visible publicamente.
    Los usuarios de nuestro blog demo tendrán un único identificador entero llamado id, nombre (string) y un email (string). Y para nuestro post tendrá un único identificador entero llamado id, titulo (string) y contenido (string) y un atributo que asocia cada posts a un usuario en particular, esto es el atributo user_id.

    ![](https://dl.dropboxusercontent.com/u/47365355/post.jpg)

    Como veremos mas adelante el nombre posts, corresponde a una tabla en una base de datos y los atributos id, titulo, contenido son columnas de esa tabla.
    Como veremos mas adelante posts y users cada una corresponde a una tabla en una base de datos y sus atributos son columnas de cada tabla.

    El recurso User
    ------------------

    En esta sesion implementaremos el modelo de datos del user, junto con una interfaz web para el modelo. Vamos a pensar en un recurso user, el cual nos permitirá pensar en los users como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso user será creado por un programa generador de código llamado scaffold el cual viene como estándar con cada proyecto de Rails.

    Entonces,

    $ rails generate scaffold User nombre:string email:string

    Los parámetros que se pasan al comando scaffold son el nombre del recurso (User) junto con parámetros opcionales para los atributos del módulo de datos.

    Al incluir nombre y email hemos organizado el modelo de User de la imagen anterior. No hay necesidad de incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.


    El recurso Post
    ------------------

    En esta sesion implementaremos el modelo de datos del post, junto con una interfaz web para el modelo.

    Vamos a pensar en un recurso post, el cual nos permitirá pensar en los post como objetos que se pueden leer, actualizar y eliminar a través del protocolo http.
    Nuestro recurso post será creado por un programa generador de código llamdo scaffold el cual viene como estándar con cada proyecto de Rails.
    Al igual que el recuso User, generamos código scaffold en este caso la aplicacion del modelo de datos post.

    Entonces,

    $ rails generate scaffold Post titulo: string contenido:string
    $ rails generate scaffold Post titulo:string contenido:string user_id:integer

    Los argumnetos que se pasan al comando scaffold son el nombre del recurso (Post) junto con parámetros opcionales para los atributos del módulo de datos.

    Al incluir titulo y contenido hemos organizado el modelo de Post de la imagen anterior. No hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.
    Igualmente, no hay necesidad d incluir el parámetro id, pues éste es creado automáticamnete por Rails para el uso de la clave principal o primary key de la Base de Datos.

    Por el momento no consideramos las asociaciones entre User y Post, eso lo veremos mas adelante en este video.

    Migraciones
    ----------------

    Para continuar debemos migrar la Base de Datos con RAKE.

    $bundle exec rake db:migrate
    $ bundle exec rake db:migrate

    Si usas RVM hacer:

    $rake db:migrate
    $ rake db:migrate

    Esto simplemente actualizará la Base de Datos con los modelos de user y post.

    Con esto podemos correr el servidor web local usando rails server o rails s.


    Vemos nuestra aplicacion demo en localhost:3000

    Un paseo por los Users
    -------------------------

    Despues de ingresar a localhost:3000 nos mostrarà la misma página por defecto de Rails, pero al entrar a /users nos mostrarà una lista de todos los users y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestran todas las acciones y su respectivas URLs.

    >>>
    URL Action Purpose
    /users index page to list all users
    /users/1 show page to show users with id 1
    /users/new new page to make a new user
    /users/1/edit edit page to edit user with id 1

    Partimos de la pàgina para mostrar todos los users de nuestra app que en un principio no hay user.


    Un paseo por los Post
    ---------------------------

    Esto simplemente actualiza la Base de Datos con un nuevo modelo de post. Tener en cuenta
    De la misma manera, accedemos a /posts nos mostrarà una lista de todos los posts y una pagina donde podemos crear un nuevo posts. Como vemos a continuacion la siguiente tabla muestra la correspondencia entre las páginas y las URLs.

    Ahora, entramos a localhost:3000

    >>>
    URL Action Purpose
    @@ -58,5 +98,5 @@ URL Action Purpose
    /posts/1/edit edit page to edit post with id 1


    Partimos de la pàgina para mostrar todos los usuarios de nuestra app. en un principaio no hay post.
    En un principio no hay posts.

  26. Elicia revised this gist Jan 26, 2014. No changes.
  27. Elicia revised this gist Jan 26, 2014. 1 changed file with 10 additions and 202 deletions.
    212 changes: 10 additions & 202 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -1,215 +1,23 @@
    ANEXO2:SCAFFOLDING EN RUBY ON RAILS
    ANEXO2: SCAFFOLDING EN RUBY ON RAILS
    ====================================

    Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a crear nuestra primera aplicación utilizando scaffold al mismo tiempo explicaremos el patrón de diseño MVC en Ruby on Rails.
    Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a generar código de manera fácil y rápida utilizando scaffold en Ruby on Rails.

    Creando Gemset para nuestro proyecto
    -------------------------------------
    ¿Qué es Scaffold?
    ---------------------------

    En primer lugar definiremos un gemset para el proyecto que estamos trabajando. Este comando especificará la version del interprete de Ruby que queremos usar, seguido del nombre del gemset creado.
    Scaffold significa andamio en inglés. Ésta es una de las características que más enganchan en Rails ya que permite tener las funcionalidades básicas de administración de datos de un modelo en un controlador. Estas funcionalidades son las ya mencionadas, CRUD (Create, Read, Update, Delete), típicas de cualquier sistema transaccional.

    ::
    A éste método, se le denomina "scaffolding" y sirve para implantar de manera inmediata un entorno de administración temporal sobre el que trabajar. El scaffold o andamio generalmente es removido de la aplicación y sustituido por métodos propios en el controlador.

    $rvm use 2.0.0@MicroBlog --create --default
    Ahora sobre este gemset creamos nuestra primera aplicacion.

    Creando nuestra primera aplicación en Rails
    ---------------------------------------------

    Para crear una nueva aplicación en Rails, se ejecuta el comando: **rails new** seguido del nombre de nuestra aplicación *microblog* que queremos crear.

    Esta es la forma que debemos seguir para crear cualquier aplicacion de Rails.
    Este comando nos crearà automaticamente un esqueleto con todas las carpetas y archivos propios de nuestra aplicación Rails.

    >>>
    $ rails new microblog
    create
    create README.rdoc
    create Rakefile
    create config.ru
    create .gitignore
    create Gemfile
    create app
    create app/assets/javascripts/application.js
    create app/assets/stylesheets/application.css
    create app/controllers/application_controller.rb
    .
    .
    .
    create test/test_helper.rb
    create tmp/cache
    create tmp/cache/assets
    create vendor/assets/javascripts
    create vendor/assets/javascripts/.keep
    create vendor/assets/stylesheets
    create vendor/assets/stylesheets/.keep
    run bundle install
    .
    .
    .
    Your bundle is complete! Use `bundle show [gemname]` to see where a bundled
    gem is installed.

    Se crean muchos archivos y directorios de Ruby, no obstante Bundler empezarà a correr automáticamente instalando gemas que vienen configuradas por defecto.

    Estructura del directorio creado de una aplicación Rails:
    ---------------------------------------------------------

    :app/:
    Dentro de esta carpeta se encuentrará todo el código del núcleo de nuestra aplicación, incluyendo modelos, vistas y controladores.
    :app/assets:
    Aqui se encuentra todos los recursos estáticas de nuestra aplicación tales como las hojas de estilo encascada(css), archivos javascript y las imágenes.
    :app/models:
    Lo explicare mas adelante
    :app/views:
    Lo explicare mas adelante
    :app/controllers:
    Lo explicare mas adelante
    :config/:
    Se encuentran archivos de configuración de la aplicación para desarrollo, producción y testing, el archivo de ruteo
    :Gemfile:
    Aqui se especificarán todas las gemas que tu aplicación requiere.

    Y otros archivos que por el momento no son de utilidad explicar para el objetivo de este video.

    Bundler
    ---------

    Después de crear una nueva aplicación web en Rails, el siguiente paso es usar Bundler para instalar e incluir las gemas necesarias propias para la aplicación. Lo que haremos serà cambiar el archivo GemFile donde mostrarà las gemas que vienen por defecto y agregaremos gemas específicas para nuestra aplicación, finalmente correremos el Bundler.

    Abriremos el archivo Gemfile.rb con nuestro editor de texto favorito.

    >>>
    $ subl Gemfile

    El siguiente Gemfile es lo que viene por defecto.

    >>>
    source 'https://rubygems.org'
    # Use sqlite3 as the database for Active Record
    gem 'sqlite3'
    # Use SCSS for stylesheets
    gem 'sass-rails', '~> 4.0.1'
    # Use Uglifier as compressor for JavaScript assets
    gem 'uglifier', '>= 1.3.0'
    # Use CoffeeScript for .js.coffee assets and views
    gem 'coffee-rails', '~> 4.0.0'
    # See https://github.com/sstephenson/execjs#readme for more supported runtimes
    # gem 'therubyracer', platforms: :ruby
    # Use jquery as the JavaScript library
    gem 'jquery-rails'
    # Turbolinks makes following links in your web application faster.
    # Read more: https://github.com/rails/turbolinks
    gem 'turbolinks'
    # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
    gem 'jbuilder', '~> 1.0.1'
    group :doc do
    # bundle exec rake doc:rails generates the API under doc/api.
    gem 'sdoc', require: false
    end
    # Use ActiveModel has_secure_password
    # gem 'bcrypt-ruby', '~> 3.1.2'
    # Use unicorn as the app server
    # gem 'unicorn'
    # Use Capistrano for deployment
    # gem 'capistrano', group: :development
    # Use debugger
    # gem 'debugger', group: [:development, :test]


    Se muestran algunas de las gemas que comunmente se necesitan. Por ahora no necesitamos alguna otra gema, mas de las que viene por defecto.

    Vamos a refactorizar este código..
    Primero eliminaremos las lineas que vienen comentadas con el simbolo(#).

    A continuación especificamos la versión de Ruby que espera la aplicación, seguido del gemset RVM. Si no estamos utilizando un gemset de Ruby, no debemos incluir la linea comentada, de lo contrario, lo descomentamos, pues es muy convenientemente utilizar la combinación versión de Ruby seguido del gemset.


    Quedando al final todo el archivo así:

    >>>
    source 'https://rubygems.org'
    ruby '2.0.0'
    #ruby-gemset=Miproyecto
    gem 'rails', '4.0.2'
    group :development do ---> Obliga a bundler a instalar la versión 1.3.8 de la gema sqlite3. Con esto gem 'sqlite3', '1.3.8' especificamos que lo estamos incluyendo en un entorno de desarrollo y evita conlfictos con la BDx que serà utilizada en Heroku
    end
    gem 'sass-rails', '4.0.1'
    gem 'uglifier', '2.1.1'
    gem 'coffee-rails', '4.0.1'
    gem 'jquery-rails', '3.0.4'
    gem 'turbolinks', '1.1.1'
    gem 'jbuilder', '1.0.2'
    group :doc do
    gem 'sdoc', '0.3.20', require: false
    end


    A menos que no se especifique un número de versión de la gema, Bundler instalará automáticamente la última versión de la gema. Por desgracia, las actualizaciones de la gema a menudo causan la rotura lo que se hace potencialmente confuso, por lo que vamos a incluir los números de versión de manera explícita.

    Una vez que hayamos resumido todo el Gemfile, instalaremos las gemas usando:

    >>>
    $ bundle update
    $ bundle install

    El comando bundle install tomará varios minutos. Pero cuando esté, nuestra aplicación estará lista para funcionar.

    Rails Server
    ----------------

    Gracias a que hemos corrido rails new y bundle install ya tenemos lista nuestra aplicacioǹ para correr. Rails viene con un comando o script que correrà el servidor web local, visible solo desde su equipo de desarrollo.

    >>>
    $ rails server
    => Booting WEBrick
    -=> Rails application starting on http://0.0.0.0:3000
    -=> Call with -d to detach
    -=> Ctrl-C to shutdown server


    Si tu sistema se queja de la falta de javascript en tiempo de ejecución visite la página execjs en GitHub para obtener una lista de posibilidades. Yo les recomiendo instalar Node.js.
    Esto nos dice que nuestra aplicacion está corriendo en el puerto 3000 en la direccion 0.0.0.0. o tambien la direccion 127.0.0.1 el cual tambien se le conoce como localhost.

    Para ver mas informacion acerca de nuetsra primera aplicacion , Click en el link "About your application's enrovonment" .

    Claro , nosotros no necesitamos la pag por defecto de Rails, pero es bueno ver que esto trabaje por ahora. Nosotros posteriormente eliminaremos la página por defecto y la reemplazaremos por una página de inicio personalizada.
    De esta manera ya tenemos creada nuestra primera aplicación en Rails.

    Modelo Vista Controlador en acción
    -----------------------------------------

    Ahora, aprenderemos a obtener una visión general de alto nivel de cómo Rails trabaja por dentro las aplicaciones.
    Ustedes puede haber notado que la estructura de la aplicación Rails:

    ![](http://ruby.railstutorial.org/images/figures/directory_structure_rails_4_0.png)

    Tiene un directorio de la aplicación llamada app/ con tres subdirectorios: modelos , vistas y controladores. Esto es un indicio de que Rails sigue el patrón arquitectónico model-vista-controlador (MVC), que impone una separación de la "lógica del dominio" (también llamada " lógica de negocio " ) y la "lógica de presentación" que está asociada con la interfaz gráfica de usuario (GUI).
    En el caso de las aplicaciones web, la "lógica de dominio" por lo general se compone de modelos de datos para cosas como los usuarios, artículos y productos, y la interfaz gráfica de usuario es sólo una página web en un navegador web.

    El Modelo Vista Controlador permite separar nuestro código en tres partes:

    * El Modelo: Está formado por clases, cada clase es un modelo, y cada modelo representa una tabla en la base de datos. Por tanto el Modelo es el encargado de trabajar con la lógica de la base de datos. Nosotros podríamos tener un Modelo Persona y una tabla personas, desde la clase Persona trabajaremos con todo lo relacionado a la tabla personas.

    * La Vista: Es la representación final de una petición, dentro de una vista hay más que nada código html, seguramente también habrá código Ruby, pero será mínimo, como imprimir una variable por pantalla o mostrar un listado de un arreglo. Pero más que nada la Vista se encargará de la presentación, lo que ve el visitante y no de la lógica de la petición.

    * El Controlador: Este, en cambio, sí se encargará de la lógica de la petición. A su vez hará de puente entre el Modelo y la Vista. Cada controlador será una clase con métodos, y por cada método habrá una vista que representará la versión procesada de ese método.

    Al interactuar con una aplicación Rails, un navegador envía una solicitud, la cual es recibida por un servidor web y se transmite a un controlador de Rails. En algunos casos, el controlador hará que una vista que es una plantilla convertida a HTML, se envíe de vuelta al navegador. Además, el controlador interactúa con un modelo , que es un objeto Ruby que representa un elemento del sitio (por ejemplo, un usuario) y está a cargo de la comunicación con la base de datos. Después de invocar el modelo, entonces el controlador representa la vista y devuelve la página web completa en el navegador como HTML.

    ![](http://ruby.railstutorial.org/images/figures/mvc_schematic.png)

    Crearemos un pequeño scaffold para explicar el funcionamiento del MVC.

    El primer paso será crear el modelo de datos. En nuestro caso será post.
    Para el objetivo de este video crearemos un modelo de datos demo para los post de un blog, mediante scaffold.

    Modelando una demo de Post
    -----------------------------
    ---------------------------

    Un post para nuestra aplicación demo tendrán un único identificador entero llamado id, titulo (string) y contenido (string) visible publicamente.

    ![](http://ruby.railstutorial.org/images/figures/demo_user_model.png)
    ![](https://dl.dropboxusercontent.com/u/47365355/post.jpg)

    Como veremos mas adelante el nombre posts, corresponde a una tabla en una base de datos y los atributos id, titulo, contenido son columnas de esa tabla.

    @@ -250,5 +58,5 @@ URL Action Purpose
    /posts/1/edit edit page to edit post with id 1


    Partimos de la pàgina para mostrar todos los usuarios de nuestra app. en un principaio no hay usuarios.
    Partimos de la pàgina para mostrar todos los usuarios de nuestra app. en un principaio no hay post.

  28. Elicia revised this gist Jan 26, 2014. 1 changed file with 3 additions and 321 deletions.
    324 changes: 3 additions & 321 deletions Scaffolding en RoR.rest
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,5 @@
    SCAFFOLDING EN RUBY ON RAILS
    ==================================
    ANEXO2:SCAFFOLDING EN RUBY ON RAILS
    ====================================

    Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a crear nuestra primera aplicación utilizando scaffold al mismo tiempo explicaremos el patrón de diseño MVC en Ruby on Rails.

    @@ -242,6 +242,7 @@ Esto simplemente actualiza la Base de Datos con un nuevo modelo de post. Tener e

    Ahora, entramos a localhost:3000

    >>>
    URL Action Purpose
    /posts index page to list all posts
    /posts/1 show page to show posts with id 1
    @@ -251,322 +252,3 @@ URL Action Purpose

    Partimos de la pàgina para mostrar todos los usuarios de nuestra app. en un principaio no hay usuarios.

    Comenzamos con una solicitud emitida desde el navegador es decir, el resultado de escribir la direccion URL en la barra d direccion al hacer clic en el enlace (PAso1)
    Esa solicirtud llega al Router Rails (Paso2) que envia una accion de un controlador adecuado en base a la URL (y al tipo de solicitud GET, POST)
    El código para crear el mapeode URL de posts con el controlador de acciones de posts estan aqui:

    >>>
    config/routes.rb
    MicroBlog::Application.routes.draw do
    resources :posts
    .
    .
    .
    end

    Las paginas del tour corresponden a las acciones del controlador Post que es un conjunto de acciones relacionadas , el controlador generado po scaffold se muestra qui:

    >>>
    app/controllers/posts_controller.rb
    class PostsController < ApplicationController
    .
    .
    .
    def index
    .
    .
    .
    end

    def show
    .
    .
    .
    end

    def new
    .
    .
    .
    end

    def create
    .
    .
    .
    end

    def edit
    .
    .
    .
    end

    def update
    .
    .
    .
    end

    def destroy
    .
    .
    .
    end
    end

    Ademàs de las aaciones que hay en las paginas como index, show, new, edit hay acciones adicionales como create, update, destroy. Estas acciones no representan paginasc(a veces lo hacen) sino q su proposito principal es modificar la BDx.

    >>>
    HTTP request URL Action Purpose
    GET /posts index page to list all posts
    GET /posts/1 show page to show post with id 1
    GET /posts/new new page to make a new post
    POST /posts create create a new post
    GET /posts/1/edit edit page to edit post with id 1
    - PATCH /posts/1 update update post with id 1
    - DELETE /posts/1 destroy delete post with id 1

    Para examinar la relacion entre el controlador Post y em modelo Post. NOs enfocaremos en una version simplificada de la accion index.

    >>>
    app/controllers/posts_controller.rb
    class PostsController < ApplicationController
    .
    .
    .
    def index
    @posts = Post.all
    end
    .
    .
    .
    end

    La aacion index tiene una linea @posts=Posts.all qu pide al modelo post recuperar una lista de todas las entrada de la BDX y se almacena en la variable posts.

    El modelo de post es:

    >>>
    app/models/posts.rb
    class Post < ActiveRecord::Base
    end


    Viene bien equipado con una gran cantidad de funcionalidades debido a la herencia . En particular el uso de la biblioteca Active Record.

    Una vezque @posts se define la variable, el controlador llama a la vista.


    >>>
    app/views/posts/index.html.erb
    <h1>Listing posts</h1>
    <table>
    <tr>
    <th>Titulo</th>
    <th>Contenido</th>
    <th></th>
    <th></th>
    <th></th>
    </tr>
    <% @posts.each do |post| %>
    <tr>
    <td><%= post.titulo %></td>
    <td><%= post.contenido %></td>
    <td><%= link_to 'Show', post %></td>
    <td><%= link_to 'Edit', edit_post_path(post) %></td>
    <td><%= link_to 'Destroy', post, method: :delete,
    data: { confirm: 'Are you sure?' } %></td>
    </tr>
    <% end %>
    </table>
    <br />
    <%= link_to 'New Post', new_post_path %>


    Variables que empiezan con @ son variables de instancia. Luego tenemos la vista.html.erb, el cual le llega la lista @users ys e dibuja una linea HTML para cada uno.


    Git
    --------

    Sigamos,

    Primer repositorio:
    --------------------

    Ahora seguiremos algunos pasos que son necesarios para crear un nuevo repositorio. Nos dirigimos a la raíz de nuestro directorio de la primera aplicación e inicializamos un nuevo repositorio.


    >>>
    $ git init
    Initialized empty Git repository in /Users/mhartl/rails_projects/first_app/.git/
    -
    -El siguiente paso es añadir los archivos del proyecto en el repositorio. Por defecto Git agrega todos los cambios de todos los archivos al repositorio. pero hay algunos archivos que no quremos que se agregen. Generalmente algunos archivos de Rails cambian constantemente, y nosotros no queremos que nuestro SCV tenga que actualizarlos constantemete, Git tiene un mecanismo simple para ignorar estosarchivos llamado .gitignore que es un archivo oculto dentro de nuestro directorio raiz.
    -
    -El siguiente código es el .gitignore creado por el comando de rails.
    -
    >>>
    # See http://help.github.com/ignore-files/ for more about ignoring files.
    #
    # If you find yourself ignoring temporary files generated by your text editor
    # or operating system, you probably want to add a global ignore instead:
    # git config --global core.excludesfile '~/.gitignore_global'
    # Ignore bundler config.
    /.bundle
    # Ignore the default SQLite database.
    /db/*.sqlite3
    /db/*.sqlite3-journal
    # Ignore all logfiles and tempfiles.
    /log/*.log
    /tmp

    Cambios realizados en el archivo .gitignore

    >>>
    # Ignore bundler config.
    /.bundle
    # Ignore the default SQLite database.
    /db/*.sqlite3
    /db/*.sqlite3-journal
    # Ignore all logfiles and tempfiles.
    /log/*.log
    /tmp
    # Ignore other unneeded files.
    database.yml
    doc/
    *.swp
    *~
    .project
    .DS_Store
    .idea
    .secret

    Agregando y commit:
    -----------------------

    Agregamos todos nuestros archivos de nuestro nuevo proyecto de Rails a Git, para luego hacerle commit.
    Aqui el punto representa el directorio actual, y Git agrega de manera recursiva todos los archivos, carpetas y subdirectorios. Este comando agrega todos los archivos de proyecto al staging area, el cual contiene todos los cambios pendientes de tu proyecto. Puedes ver cuales archivos estan en staging area usando el comando status.

    >>>
    $ git add .
    $ git status
    # On branch master
    #
    Initial commit
    #
    # Changes to be committed:
    # (use "git rm --cached <file>..." to unstage)
    #
    # new file: README.rdoc
    # new file: Rakefile
    .
    .
    .
    -
    Para decir a Git que queremos mantener los cambios usamos el comando commit.

    >>>
    $ git commit -m "Initialize repository"
    [master (root-commit) df0a62f] Initialize repository
    42 files changed, 8461 insertions(+), 0 deletions(-)
    create mode 100644 README.rdoc
    create mode 100644 Rakefile
    .
    .
    .

    Podemos ver la lista de commits con log


    GitHub
    ----------

    Es tiempo de subir todo nuestro código a Github, esta es un sitio social de codificacion y optimizado para alojar y compartir repositorios. Permite tener una copia de seguridad de nuestro código y la colaboracoón es màs fácil.

    >>>
    $ git remote add origin https://github.com/mhartl/blog_app.git
    $ git push -u origin master

    De esta manera todos los archivos se suben al repositorio creado en Github.

    Heroku:
    -----------------

    Ahora haremos el despliegue de nuestra aplicacion Rails a producción. Este paso es opcional, el desplieqgue temprano, nos permite detectar cual uier problema de implementación temprana en nuestro ciclo de desarrollo. A veces hay problemas de integración cuando se deja para el final.
    Para el deployment de nuestra aplicacion en Rails es muy muy fácil. Siempre y cuando el código se encuentra dentro del control de versiones con Git.

    Heroku setup
    ------------------

    Heroku usa el Gestor de Base de Datos PostgreSQL, esot significa que debemos de añadir la gema pg en el entorno de produccion que permite a Rails hablar con Postgresql
    Tome en cuenta que tambien hemos agregado la gema rails_12factor, el cual es usado por Heroku para servir archivos estáticos tales coo imagenesy css.

    Estos cambios lo hacemos en el Gemfile.rb

    A Gemfile with added gems and explicit Ruby version.

    >>>
    source 'https://rubygems.org'
    ruby '2.0.0'
    #ruby-gemset=railstutorial_rails_4_0
    gem 'rails', '4.0.2'
    group :development do
    gem 'sqlite3', '1.3.8'
    end
    gem 'sass-rails', '4.0.1'
    gem 'uglifier', '2.1.1'
    gem 'coffee-rails', '4.0.1'
    gem 'jquery-rails', '3.0.4'
    gem 'turbolinks', '1.1.1'
    gem 'jbuilder', '1.0.2'
    group :doc do
    gem 'sdoc', '0.3.20', require: false
    end
    group :production do
    gem 'pg', '0.15.1'
    gem 'rails_12factor', '0.0.2'
    end


    Para esto, corremos el bundle:

    >>>
    $ bundle install --without production

    Esta opcion impide la instalcion de las gemas de producción. En este caso las únicas gemas que hemos añadido se limitan a entornos de produccion. Este comando no instalà nada, pero es necesario actualizar el Gemfile.lock con pg y rails_12factor. Luego hacemos commit con los cambios hechos con los gte:

    >>>
    $ git commit -a -m "Update Gemfile.lock for Heroku"

    Para crear y configura una cuenta en Heroku, debemos de iniciar sesion. Primero debemos registrarnos en Heroku, revisar nuestro email y completar la creacion de nuestra cuenta.
    Luego debemos instalar el software neceario usando https://toolbelt.heroku.com/debian, Aqui elegimos la plataforma.

    Luego usamos el comando heroku para logearse:

    $ heroku login

    Luego nos vaos al directorio de nuestro proyecto para para crear el servicio de Heroku.

    >>>
    Creating a new application at Heroku.
    $ cd ~/rails_projects/first_app
    $ heroku create
    Created http://stormy-cloud-5881.herokuapp.com/ |
    git@heroku.com:stormy-cloud-5881.herokuapp.com
    Git remote heroku added

    El comando heroku crea un nuevo subdominio solo para nuestra aplicacion.

    Heroku deployment
    -------------------------

    Para desplegra la aplicación, el primer paso es usar Git para hacer push a Heroku.

    >>>
    $ git push heroku master

    Ya hemos terminado, para ver el despliegue de nuestra aplicaciòn, visitamos la dirección anterior. Tambié podemos abrir el navegador automàticamente con:

    >>>
    $ heroku open
  29. Elicia revised this gist Jan 26, 2014. No changes.
  30. Elicia renamed this gist Jan 26, 2014. 1 changed file with 3 additions and 0 deletions.
    Original file line number Diff line number Diff line change
    @@ -1,3 +1,6 @@
    SCAFFOLDING EN RUBY ON RAILS
    ==================================

    Hola, que tal amigos de Devcodela,! Les habla Elicia Cordova. Y en este video aprenderemos a crear nuestra primera aplicación utilizando scaffold al mismo tiempo explicaremos el patrón de diseño MVC en Ruby on Rails.

    Creando Gemset para nuestro proyecto