Pequeña aplicacion de Inventario RoR – Primera Parte…

0
604
.
.

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.

LEAVE A REPLY

Please enter your comment!
Please enter your name here