Cómo crear un blog desde cero usando Ruby on Rails en Ubuntu
Creación de un nuevo proyecto Rails para tu blog
Antes de poder hacer cualquier cosa, tiene que crear un nuevo proyecto. En Rails, un proyecto es una estructura de carpetas que se utiliza para almacenar todos los archivos, que son pertinentes para la aplicación web. Para crear un proyecto, ejecute el siguiente comando en una terminal.
> rails myblog -d mysql

Tenga en cuenta, en este caso estamos usando MySQL como SGBD,Este comando creará una carpeta llamada blogtuto que contiene todas las carpetas del proyecto. Importante archivos y carpetas
| Archivo / Carpeta | Propósito |
| config\database.yml | Este archivo es un YAML (que significa – YAML Ain’ta Markup Language) de archivos. Contiene detalles acerca de su proveedor de DBMS y los datos de autentificación para su DBMS. |
| config\routes.rb | Este es un archivo de rubí.Le permite configurar el número de solicitudes HTTP serán enviados. |
| app\controllers\ | Contiene archivos de los controladores. Los controladores son archivos de ruby. |
| app\helpers\ | Contiene los archivos de ayuda. |
| app\models\ | Contiene archivos de modelo. Heredan la mayor parte de la funcionalidad de ActiveRecord, pero también se puede aprovechar esta funcionalidad al escribir sus propios métodos. |
| app\views\ | Contiene una subcarpeta para cada archivo de controlador. Por ejemplo, si hay un controlador llamado "posts_contoller.rb" habrá una subcarpeta llamada "posts". |
| public\images\ | Contiene los archivos de imágenes que pertenecen a su sitio web. |
| public\javascripts\ | Contiene los archivos javascript que son utilizadas por su sitio web. |
| public\stylesheets\ | Contiene los archivos CSS que pertenecen a su sitio web. |
| db\migrate | Utilizado para migrar una base de datos de un estado a otro. |
Ahora nos ubicaremos dentro de la carpeta del proyecto, ejecuté el siguiente comando.
> cd blogtuto Scaffolding Scaffolding se puede utilizar para la construcción de prototipos rapidos para su cliente. También puede ser muy útil para aprender a usar Rails. En un simple comando puede crear un modelo, controlador y varios puntos de vista, efectivamente la construcción de una gran parte de la funcionalidad de un solo golpe. Creación de Posts utilizando Scaffolding Para crear los archivos necesarios para el Scaffolding, se pueden generan ejecuntando el comando:
> ruby script/generate scaffold post title:string body:text
Este comando crea muchos archivos. Se crea un controlador para los puestos llamados posts_controller.rb y un modelo llamado post.rb.También puede haber notado que la especificación de los campos que se desean es decir, el título y el cuerpo, además de sus tipos de "cadena" y "texto", respectivamente.

Creación de Posts utilizando Scaffolding
Del mismo modo, para crear los archivos necesarios para los comentarios, ejecute este comando:
> ruby script/generate scaffold comment name:string body:text post:references
Al final de este comando, usted puede haber notado el texto "post: references". Esto será utilizado para crear el campo de clave externa para ligarse a la clave principal de la tabla posts.


Relacionando los modelos Post y Comment
Se debe editar los archivos post.rb y comment.rb ambos ubicados en la ruta /blogtuto/app/models/ post.rb
class Post < ActiveRecord::Base has_many :comments end
comment.rb
class Comment < ActiveRecord::Base belongs_to :post
Esto hace que sea muy fácil de encontrar los registros asociados. Usted verá lo fácil después, cuando tengamos que mostrar los comentarios, que esten relacionados con un campo determinado.


¿Cómo puedo crear la base de datos y tablas?
Ahora que ha creado los modelos, es necesario crear la base de datos a continuación, crear tablas para almacenar información acerca de las fotografías y comentarios.Para crear la base de datos es necesario añadir el nombre de usuario y contraseña en el archivo database.yml ubicado en la ruta /blogtuto/config/.
development: adapter: mysql encoding: utf8 reconnect: false database: myblog_development pool: 5 username: root password: su-password host: localhost
Después de haber modificado el archivo database.yml con sus datos de inicio de sesión de base de datos, tiene que ejecutar el comando:
> rake db:create
Migración de la base de datos En Rails, una migración es el nombre dado al proceso de trasladar su base de datos de un estado a otro. Algunos ejemplos de la migración de su base de datos de un estado a otro son:
- Creación de tablas
- Extracción de tablas
- Adición de nuevos campos
- Extracción de los campos
Para migrar las tablas debe ejecutar el siguiente comando:
> rake db:migrate
Vamos a ver cómo se ven las cosas !! vamos a arrancar WEBrick, Rails incorpora el servidor web, y veremos cómo se ven las cosas.
> ruby script/server


Ahora vaya a http://localhost:3000/posts en su navegador favorito y usted debería ver una pantalla similar a la siguiente captura de pantalla.
Si hace clic en el "New Post",se le dirigirá a la URL, http://localhost:3000/posts/new, donde se le presentará un formulario para la creación de nuevos posts. Esta solicitud de URL llama el metodo "new " en el controlador de mensajes, entonces se muestra la vistal "new.html.erb".

La creación de una página de inicio
Para ello, primero tendrá que eliminar el archivo index.html que se encuentra en la ruta /blogtuto/public/.


La segunda cosa que hay que hacer es crear una ruta en el archivo de configuración routes.rb que se encuentra en la ruta /blogtuto/config/. Abra este archivo en su editor y añada una nueva línea hasta el final con map.root, como se muestra a continuación.
ActionController::Routing::Routes.draw do |map| map.resources :comments map.resources :posts map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' map.root :controller => "post" end
Permita que el usuario ponga algún comentario! Antes de hacer cualquier cambio editamos el archivo routes.rb que anteriormente ya habiamos configurado ,quedara de esta manera.
ActionController::Routing::Routes.draw do |map| map.resources :posts, :has_many => :comments map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format' map.root :controller => "post" end
Modificar la vista Ahora modifique los puntos de vista del archivo show.html.erb que se encuentra en /blogtuto/app/views/posts/ y agregue el siguiente codigo:
<p>
<b>Title:</b>
<%=h @post.title %>
</p>
<p>
<b>Body:</b>
<%=h @post.body %>
</p>
<h2>Comments</h2>
<% @post.comments.each do |c| %>
<p>
<b><%=h c.name %> said:</b><br />
<%= time_ago_in_words(c.created_at) %> ago
</p>
<p>
<%=h c.body %>
</p>
<% end %>
<% form_for [@post, Comment.new] do |f| %>
<p>
<%= f.label :name, "Author" %><br />
<%= f.text_field :name %><br />
<%= f.label :body, "Comment Description" %><br />
<%= f.text_area :body %>
</p>
<p>
<%= f.submit "Add Comment" %>
</p>
<% end %>


Modificar los Comentarios Controlador
Quite todos los métodos que se crea automáticamente en el archivo comments_controller.rb que se encuentra en /blogtuto/app/controllers/ , ya que no son necesarios para nuestra aplicación web. Añadir un nuevo método llamado "create" como se mque se encuentra en uestra en el código de abajo.
class CommentsController < ApplicationController
def create
@post = Post.find(params[:post_id])
@comment = @post.comments.create!(params[:comment])
redirect_to @post
end
end

Actualiza el navegador (asegúrese de que su servidor todavía se está ejecutando en la terminal). Usted debe obtener algo similar a la siguiente captura de pantalla.


Con esto damos por concluido este tutorial, cualquier duda, sugerencia o comentario serán recibidos.
Quizá te interese :
El Registro de Windows El registro de Windows se crea durante la instalación del sistema operat ...
Para poner estilo a tus proyectos desarrollados en ruby on rails de forma rápida y algo fácil ...
Para aquellos que les gusta programar en Java en cualquier momento, aquí les dejo un tutorial so ...









hola que tal, soy nuevo en esto pero me intereso este post
y tengo un problema al momento de querer modificar los archivos post y coment puesto que solo me aparece el archivo post y el archivo coment no me aparece.
Por favor me podrías decir que hacer
gracias
Saludos
Hola dora!
Realizaste el scaffold del comment?
ruby script/generate scaffold comment name:string body:text post:referencesEspero te ayude
Hola, que tal, Dora te comento que tuve algunos errores parecidos a los tuyos y todo eso me paso por quererlo hacer rápido lee bien el tutorial y hazlo con calma, paso a paso y veraz que no tendrás problemas y luego vuelve a leer el tuto y ve revisando tu trabajo para que lo entiendas mejor, espero te sirva de algo mi respuesta y la de Daniel, gracias cualquier otra duda estamos para ayudarte.
gracias por sus respuestas y si por querer hacerlo rapido me paso eso
muchas gracias por sus respuestas
Saludos
disculpa tengo una duda en la parte de crear la base de datos y las tablas, puesto que a mi sale esto
# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000
# Warning: The database defined as “test” will be erased and
# re-generated from your development database when you run “rake”.
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
y me imagino que tengo que meter el usuario y el password al principio pero no se si cambiar los demás campo también
Hola Jona!
Si, en el caso del tutorial, se trabaja con mysql (se configuran los datos de tu conexión como usuario, host y password), junto con el adapter de mysql.
Rails de manera predeterminada trabaja con sqlite, una base de datos ideal para realizar pruebas en local, pero no aconsejada para aplicaciones reales.
Sigue las instrucciones del tutorial paso a paso y aquí estamos para ayudarte.
Saludos
hola gracias por la respuesta tan inmediata
y se supone que también lo hice con mysql como lo dice el tutorial pero me aparece eso no me aparece lo de mysql al momento de querer crear la parte de las bases de datos y las tablas
Hola Jona!
Lo que pasa es que hay que editar tu archivo config/database.yml, para que corresponda a tus datos (incluido el adapter), antes de cambiarlo a mysql, instala la ruby gem de mysql.
Puede que necesites bajar las librerías de desarrollo de mysql (mysql-dev) para compilar la gem.
Seguimos en contacto
Hola amiga se que me vas a matar, pero desafortunamente estoy ahciendolo en windows..
Y tengo un problema al crear el archivo me sale el siguiente error.
http://localhost:3000/say_hello/index
We’re sorry, but something went wrong.
We’ve been notified about this issue and we’ll take a look at it shortly.
espero me puedan ayudar
Los autores de Ruby y Rails recomiendan usar algún Unix de preferencia (Linux, OSX, Solaris), puedes revisar el registro de errores en la carpeta log/development.log o utilizar los métodos que genera el scaffolding.
muy bien,,tenia tiempo buscando una buena explicacion,, gracias!!!
Al ejecutarlo me produce el error
undefined method `post_comments_path’ for #<#:0xae4e198>
Extracted source (around line #25):
22:
23:
24:
25:
26:
27:
28:
¿será por algún problema en las rutas? utilizo rails 3
Gracias!!
Me autorrespondo para quien utilie RAILS 3:
En rails 3 no se puede utilizar :has_many en routes.rb (sólo en models se puede utilizar). En su lugar debemos hacer:
resources :posts do
resources :comments
end
Gracias por el aporte, Rails3 cambia bastante el juego, estamos preparando algo sobre Rails3 para ponerlo en el sitio.
Todavía hay una gran base de usuarios de rails 2.x y todavía el tutorial servirá para quién tenga que enfrentarse a esas versiones “legacy”.
Hola a todos es la primera vez que uso Ruby on Rail y tengo una duda, estoy haciendo una web en dreamweaver y queria incorporar un blog hecho con este programa y mi pregunta es: ¿como puedo luego incluirlo en mi web? ¿Podria hacerle el mismo diseño al blog que tiene mi pagina? me refiero al mismo fondo y demás…
os agradeceria mucho vuestra ayuda.