Home > carrito23

carrito23

Carrito23 is a project mainly written in ..., it's free.

Proyecto para enseñanza

Crear proyecto

rails carrito cd carrito

Crear primer scaffold

########### git checkout 1

ruby script/generate scaffold usuario nombre:string login:string password:string fecha_nacimiento:date

Migrar la base de datos

rake db:migrate

Crear scaffold para productos

ruby script/generate scaffold producto nombre:string precio:decimal

Editar db/migrate/***_create_productos.rb (ver codigo)

Para poder hacer que la aplicacion sea en español o cualquier otro idioma

descargan http://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/es.yml

y despues mueven el archivo "config/locales", vean ahora el archivo

"config/locales/es.yml" ahi se encuentra toda la traduccion al español

ahora vayan a "config/environment.rb" y casi al final antes de "end"

adicionan "config.i18n.default_locale = :es"

Layouts, Los layouts son los templates, es en si la forma general que tendra todo el sitio

Web en la presentación, cuando hacemos ruby script/generate scaffold por defecto rails crear un layout para

cada vista, pero queremos un layout común para todas nuestras vistas entonces los que hacemos es crea el archivo

app/views/layouts/application.html.erb

y borramos todos los layouts existentes, Nota cada ves que ejecutan script/scaffold rails genera un layout

para que use el layout que nosotros definimos para nuestro sitio debemos borrar el layout generado

Ahora veamos el código en este archivo

################### git checkout 2

Generamos login y logout

Editar el archivo

app/models/usuario.rb

Y ahora ejecutamos

ruby script/generate migration add_usuarios_tipo

Ahora editamos el archivo db/migrate/**_add_usuarios_tipo.rb (ver codigo)

Ejecutamos de nuevo

rake db:migrate

Editar ahora "app/views/usuarios/new.html.erb" (ver codigo)

debemos generar metodos para login y password

creen en "app/controllers/session_controller.rb" (ver codigo)

editamos el archivo "config/routes.rb" (ver codigo)

y reiniciamos el servidor

ahora debemos crear la "carpeta app/views/session/"

creamos el archivo "carpeta app/views/session/new.html.erb" (ver codigo)

Como validar los permisos

editamos "app/controllers/application_controller" (ver codigo)

y adicionamos los before_filter a los controladores de productos y usuarios (ver codigo)

Editamos el archivo "app/helpers/application.rb"

"app/views/layouts/application.html.erb" para poder presentar el usuario cuando esta logueado

###################

git checkout 3

Para generar compra es necesario crear el controlador

ruby script/generate scaffold compra usuario_id:integer fecha:datetime total:decimal

editamos el archivo "db/migrate/****_create_compras.rb"

Ahora generamos el modelo compra_detalle

ruby script/generate model compra_detalle compra_id:integer producto_id:integer cantidad:integer precio:decimal

editamos el archivo "db/migrate/****_create_compra_detalles.rb"

Ahora editamos los modelos compra y producto en "app/models" (ver codigo)

Y ahora editamos el modelo compra_detalle (ver codigo)

Generamos un controlador para poder presentar los productos y poder adicionar items al carrito de compras

ruby script/generate controller carrito_compras

Ahora adicionaremos paginacion, editamos el archivo "config/environment.rb" (ver codigo)

y luego editamos el archivo "app/controllers/application_controller.rb" (ver codigo)

editamos el archivo "config/routes.rb" (ver codigo)

y borramos el archivo "public/index.html"

ahora creamos el archivo "app/views/carrito_compras/index.html.erb" (ver codigo)

creamos "app/views/carrito_compras/new.html.erb"

creamos "app/models/item_session.rb"