2009-06-12 23 views
22

Soy un estudiante de compsci que quiere aprender un poco sobre el desarrollo web: aprendo mejor haciendo. Sé html/css/php/javascript/xml básico, pero como Ruby es uno de mis lenguajes de scripting favoritos, pensé que aprendería Ruby on Rails.Cómo: Ruby on Rails para construir un sitio básico

Me gustaría crear un sitio web básico para un club de amigos en la escuela que solo brinde información sobre la organización y los servicios que ofrecen y un panel de administración que contenga un sistema de inventario muy básico (artículo, número en inventario, costo, eso es todo) para aprender Ruby on Rails. Lo estaré alojando en una computadora en el campus, así que no tengo que preocuparme por el hosting.

Esto puede sonar un poco tonto, pero como alguien que nunca construyó un sitio web, me preguntaba cómo se puede hacer con los rieles, por ejemplo, cómo hago un diseño básico para la parte principal del sitio. - con cosas como "Inicio, Acerca de nosotros, Servicios, Contacto, Ejecutivo del Club" en la parte superior? ¿Debo hacerlo en html y ponerlo en la sección "ver"? Los tutoriales que he leído en rieles (Getting Started With Rails) realmente hacen que el sistema de inventario básico parezca fácil, en comparación con esta parte, que usa mucha de la funcionalidad incorporada de Rieles y andamios. La documentación de Rails es un poco confusa.

Respuesta

1

Debería leer acerca de Model-View-Controller architecture si aún no lo ha hecho, ya que es la base de la mayoría de los frameworks web, incluido Ruby on Rails.

+0

no hay nada que aprender o relativo a lo que la pregunta pide. De acuerdo, tengo la arquitectura MVC, pero ahora qué, cómo construyo un sitio web muy básico para hacer algo. – Khay

+0

Esto no es lo que OP está pidiendo – HenryRootTwo

38

El libro "oficial" de Rails es bastante bueno si quieres empezar a construir aplicaciones Rails. link

Pero en realidad es algo como esto:

  1. Crear la aplicación raíles usando rails applicationname
  2. Crear los controladores. Se ve que para usted un controlador es suficiente, póngalo como principal: ruby script/generate controller main
  3. Ahora tiene un controlador en app/controllers, llamado main_controller.rb. Aquí puede insertar las acciones que desea que responda este controlador. Si no desea que el controlador haga nada solo muestre la vista, luego deje el método vacío.

     
    class Main < ActionPack::Controllers 
    def index 
    end 
    def about 
    end 
    def contact 
    end 
    (...) 
    end 
    
  4. Ahora tiene un controlador que responderá al índice, a la información y al contacto.

  5. Crear las vistas de este controlador en app/views/main/index.erb (y otros, como about.erb)
  6. Simplemente puede usar HTML si quieres
  7. Alternativamente, puede utilizar un diseño, que tiene que definir en app/views/layouts/main.rhtml en este diseño el uso de HTML, pero wherewer desea incluir la vista, escribir <%= yield %> Ejemplo:

     
    <HTML> 
    <BODY> 
    <%= yield %> 
    </BODY> 
    </HTML> 
    
  8. puede incluir esta disposición en el controlador escribiendo layout :main en la clase (antes de las declaraciones de métodos)

  9. Ahora, si ejecuta ruby script/server en la raíz de la aplicación, puede acceder a las páginas que ha creado. Serán estáticos, por supuesto, pero esto podría ayudarte a avanzar. Tienes que agregar modelos y algo de lógica a tus controladores para avanzar.Te aconsejo que consultes el libro que he vinculado si te interesa más, o verifica las alternativas de rieles como merb (http://merbivore.org) que tiene algunas características agradables y suele ser más rápido, pero carece de la madurez de los rieles.
+0

para mí solo funciona con ** rails ** script/generate controller main – migueloop

1

Me parece que este sitio podría no ser la mejor manera de aprender Ruby on Rails. Rails es realmente genial para aplicaciones CRUD (aplicaciones que permiten a los usuarios crear, leer, actualizar y eliminar registros en una base de datos). Dado que su sitio parece ser todas las páginas estáticas, excepto la sección "Contáctenos" (que supongo que es un formulario que envía un correo electrónico con algún tipo de página de confirmación), en realidad se encontrará luchando contra "The Rails Way".

Idealmente, en una situación como esta, podría simplemente incluir todas sus páginas estáticas en el directorio público/y crear un andamio rápido de Rails para la página "Contáctenos".

Pero al hacer eso, no terminará con un proyecto terminado que se asemeja a una aplicación típica de Ruby on Rails, y en el peor de los casos, puede tener que "desaprender" o al menos "volver a aprender" una muchos de los aspectos de la programación de Rails.

Creo construcción de una aplicación CRUD con varios recursos (la canónica "Rails blog in 15 minutes" es un gran comienzo. Usted aprenderá más por la práctica de las convenciones Rieles y ver el tipo de flujo de trabajo y la aplicación que realmente permite a los rieles para brillar.

Luego, cuando llega el momento de construir otra página web en su mayoría-estática, usted sabrá exactamente lo que hay que hacer para ir sobre ella.

Mis 2 centavos, de todos modos.

0

Comience con Mephisto. se le dará un marco para lograr su objetivo bastante rápido ... de lo contrario, puede simplemente flotar Aprendiendo todo lo que implica la creación del sitio web de los rieles.

0

Debo recomendar Ramaze. Si ya conoces a Ruby, pero aún no conoces Rails, Ramaze es más adecuado para ti porque está "más cerca de casa" en cuanto a que las aplicaciones de Ramaze sean pura (r) Ruby.

Para obtener acceso a su base de datos, puede elegir entre ORM. Sequel es más popular entre Ramazers, pero también hay DataMapper y M4DBI.

Como ya dijo Alan Alavi: Debe familiarizarse con MVC, pero eso se puede hacer simplemente sumergiéndose y ensuciándose las manos.

+0

¿Aprender otro framework? Eeek! –

+0

@ l0oky Um, esta respuesta tiene 6 años. :) – Pistos

+0

hehe gotta 'love diggin' stackoverflow: P –

2

Recogí el libro "Desarrollo web ágil con rieles", y es excelente. Pasa a través de la construcción de un carrito de compras en línea.