Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Proyecto para enseñanza
branch: master
Failed to load latest commit information.
app Se realiza compras
config Se realiza compras
db Terecera parte
doc Primera parte
public Se realiza compras
script Primera parte
test Terecera parte
.gitignore Primera parte
README Terecera parte
Rakefile

README

# 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"

Something went wrong with that request. Please try again.