sábado, 8 de noviembre de 2008

Breve resumen proyecto en Ruby on Rails

Estaba haciendo unas pruebas en ruby on rails, y creando mi primer proyecto con el Aptana.

Enlace de interés: Api de Ruby On Rails http://api.rubyonrails.org/

...............

Carpetas

Proyecto -> config -> database.yml es donde están las configuraciones
Proyecto -> config -> enviroment.rb están una pluralizaciones en castellano.

NombreProyecto_nombreentorno

en vendor irán los plugins para el proyecto: ejemplo, calendarios para javascript, para subir imágenes.... Un plugin es como un mini-proyecto, porque vuelve luego a repetir la estructura base de un proyecto normal.
En plugins, irían por ejemplo miniaplicaciones, como encuestas, gestión de menús,...

la carpeta app, es el grueso de la caballería, en realidad es donde está la estructura del modelo vista controlador.


controllers: la base de los controladores es application.rb


helpers: los helper son para escribir código html, ejemplo para construir un enlace parametrizados, son usadas en las vistas.
Dentro del fichero application_helper.rb haces métodos, es común a todas las vistas de la aplicación.

models: tendremos los modelos de la lógica de negocio
views: las vistas de cada controlador
Dentro de layouts, estarán las disposiciones de las vistas. Tiene los elementos, ejemplo, menús.


En aptana, en show view, hay generator, es para scaffold:
Parameter: person (es el nombre del modelo=clase).
Generator: model


Bases de Datos


db -> migrate
ahí están los ficheros de migración, es decir, de "actualizaciones" en la bbdd

def self.up
create_table :people do |t|
t.column :name, :string //es el nombre de la columna, y luego el tipo de la columna
end //del do
end //en del def

para migrar la bbdd:
en aptana: una view que se llama Rake Tasks
Task: db:migrate , si no le pasas ningún parámetro, le dices la versión a la que está y va hacia adelante.
VERSION=6 iría a la migración 6 y de ahí hacia adelante
Las migraciones se ejecutan consecutivas, si te falta una, lo ignora.
Entonces, con la 1ra migración se crea también la tabla schema_info que almacena el número de la migración en la que está.


Scaffold:

En el aptana View->Generator
Generator: Scaffold
Parameters: selecciono nombre del modelo
Va a buscar en bbdd, la tabla asociada a person, es decir, busca el plural de person (people). El controlador es de people también, es decir, en plural.

Salvo que digamos lo contrario el controlador people, usará el layout people.rhtml (que está en views-> layouts) y la carpeta people que estaría a people

En un controller, dentro de un def
render :layout=>principal //busca otro layout
render :action=>show //busca otra vista

Las variables con arroba, se ven desde la vista, y es local al método.
Si lleva dos arrobas, sería global a PeopleController

No hay comentarios: