Pequeña aplicacion de Inventario RoR - Primera Parte...
   
Linux Solutions Center    
Bienvenido a    :: LINUX SOLUTIONS CENTER ::
México, 
Home Programacion Pequeña aplicacion de Inventario RoR - Primera Parte...
Linux Solutions C.
Buscar en Linuxsc
Actualidad
GNU/Linux
Gente en Línea
Tenemos 50 invitados conectado(s)
Acceso



Estadísticas
Ver contenido por hits : 1058014
El Clima
Mie Jue Vie
La encuesta del día
¿Cuál es la Red Social que usas más?
 
Anunciate aquí

Centro de Soluciones Linux

Santa Clara Ocoyucan

KoalaSoft-Sitio de Amigos
Computer Fixers



Pequeña aplicacion de Inventario RoR - Primera Parte... PDF Imprimir E-mail Hits: 1351
Jueves, 17 de Julio de 2008 19:01

Hola a Todos los que visitan estas paginas...

Vamos a hacer un pequeño ejercicio el cual va a estar dividido en varias partes en las cuales vamos a hacer una pequeña aplicacion para manejar un inventario pequeño con opciones basicas

Se requiere hacerlo de la manera mas sencilla para los usuarios del sistema y con la seguridad necesaria, asi que manos a la obra...


Vamos a crear nuestra template que en este caso lo vamos a llamar venta, y lo crearemos para que funcione con la una base de datos de Mysql

 fvasquez@fvasquez:~/proyectos$ rails -d mysql venta

Creamos nuestra base de datos

fvasquez@fvasquez:~/proyectos/venta$ sudo mysqladmin create venta -p

Utilizaremos el plugin scaffold resource de James Goolik para nuestra aplicacion asi que nos instalamos desde su repositorio la version mas nueva

fvasquez@fvasquez:~/proyectos/venta$ svn export http://svn.jamesgolick.com/resource_controller/tags/stable vendor/plugins/resource_controller



Ahora modificaremos el archivo /config/initializers/inflections.rb esto lo hacemos con el fin de que el sistema nos plurarize correctamente en español los modelos controladores y vistas y lo dejamos como se muestra a continuacion.

Inflector.inflections.clear
Inflector.inflections do |inflect|
inflect.plural /([aeiou])([A-Z]|_|$)/, '\1s\2'
inflect.plural /([rlnd])([A-Z]|_|$)/, '\1es\2'
inflect.singular /([aeiou])s([A-Z]|_|$)/, '\1\2'
inflect.singular /([rlnd])es([A-Z]|_|$)/, '\1\2'
end


Ahora vamos a crear los archivos de migracion para nuestra aplicacion aqui podemos ver que tenemos uno que se llama proveedor, con la medida que tomamos anteriormente nos plurizara correctamente a proveedores

fvasquez@fvasquez:~/proyectos/venta$ ./script/generate scaffold_resource Marca marca:string
fvasquez@fvasquez:~/proyectos/venta$ ./script/generate Scaffold_resource Articulo articulo:string marca_id:integer cantidad:integer proveedor_id:integer
fvasquez@fvasquez:~/proyectos/venta$
./script/generate scaffold_resource Proveedor proveedor:string contacto:string

Y construimos nuestras tablas en la base de datos...

fvasquez@fvasquez:~/proyectos/venta$ rake db:migrate


Vamos a modificar nuestros modelos para indicar las relaciones que se deben cumplir entre las diferentes tablas de nuestra base de datos y los dejamos como se muestra a continuacion

fvasquez@fvasquez:~/proyectos/venta$ nano /app/models/marca.rb

class Marca < ActiveRecord::Base
has_many :articulos
end

fvasquez@fvasquez:~/proyectos/venta$ nano /app/models/proveedor.rb

class Proveedor < ActiveRecord::Base
has_many :articulos
end

fvasquez@fvasquez:~/proyectos/venta$ nano /app/models/articulos.rb

class Articulo < ActiveRecord::Base
belongs_to :marca
belongs_to :proveedor
end


En este momento es pertinente crear algunos registros en proveedores y marcas  asi que adelante prente tu webric y vamos a:


http://localhost:3000/proveedores

.

 


http://localhost:3000/marcas

.


Ahora nos falta modificar las vistas para de nuestros articulos para poder trabajar con ellos como lo deseamos, modificaremos los siguientes archivos y los vamos a dejar como se indica a continuacion

fvasquez@fvasquez:~/proyectos/venta$ nano /app/views/articulos/_form.html.erb


  Articulo:
  <%= f.text_field :articulo %>



  Marca:
  <%= f.collection_select :marca_id, Marca.find(:all), :id, :marca, :prompt => "Seleccione Marca" %>



  Cantidad:
  <%= f.text_field :cantidad %>



  Proveedor:
 <%= f.collection_select :proveedor_id, Proveedor.find(:all), :id, :proveedor, :prompt => "Seleccione Proveedor" %>



Si nos damos cuenta estamos haciendo un collection_select para los campos marca_id y proveedor_id que nos traera en un campo select todos los elementos que tenemos es esas tablas.

.

 

fvasquez@fvasquez:~/proyectos/venta$ nano  /app/views/articulos/index.html.erb

Listing Articulos




 
   
   
   
   
 
  <%- @articulos.each do |articulo|%>
   
     
     
     
     
    
     
     
     
   
  <% end %>
ArticuloMarcaCantidadProveedor
<%=h articulo.articulo %><%=h articulo.marca.marca %><%=h articulo.cantidad %><%=h articulo.proveedor.proveedor %><%=link_to 'Show', object_url(articulo) %><%=link_to 'Edit', edit_object_url(articulo) %><%=link_to 'Destroy', object_url(articulo), :confirm => 'Are you sure?', :method => :delete %>


Aqui lo que hemos echo es utilizar las relaciones entre modelos para poder desplegar el valor mas no el indice

 .

 

fvasquez@fvasquez:~/proyectos/venta$ nano /app/views/articulos/show.html.erb


  Articulo:<%=h @articulo.articulo %>



  Marca:<%=h @articulo.marca.marca %>



  Cantidad:<%=h @articulo.cantidad %>



  Proveedor:<%=h @articulo.proveedor.proveedor %>



<%= link_to 'Edit', edit_object_url %>
|
<%= link_to 'Back', collection_url %>

Aqui lo que hemos echo es utilizar las relaciones entre modelos para poder desplegar el valor mas no el indice

.


Pues hasta aqui le vamos a dejar por ahora pronto tendre lista la segunda parte....

Como siempre espero que este documento les sea de utilidad

Atte Faustino Vasquez Limon

LINUX USER.

Última actualización el Miércoles, 15 de Abril de 2009 10:47
 








Chinese (T)EnglishGermanGreekKoreanPolishPortugueseSpanish
Linuxsc está disponible ahora.
Linuxsc en Android
QrDroid

Descarga el APK de Linuxsc
Linuxsc RSS.

Tu Futuro... Hoy
Felipe Angeles
Linuxsc en RSS
No. de Visitas
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy691
mod_vvisit_counterAyer1587
mod_vvisit_counterEsta Semana3862
mod_vvisit_counterEste Mes11839
mod_vvisit_counterTotal1020864
News Feeds

Ultimo Reporte
Ranking Linux
http://www.wikio.es