Bienvenido a   :: LINUX SOLUTIONS CENTER ::

México,  Viernes 21 de Noviembre del 2008   
  Hora Local
Home Programacion Pequeña aplicacion de Inventario RoR - Primera Parte...
LINUX es nuestra Especialidad: · Servidores de Internet · Monitoreo de Servidores y Enlaces · Virtualizacion · Firewalls con OpenSource · Proxy Servers (Web Cache) · DNS y DHCP · Web Server · Webmail · NAT's · IP Forwarding · FTP Server · Email Attachmnt Filtering · Reportes estadisticos · Linux Gateway/Router · Bloqueo de Puertos · Email Server · Reporte de todo el trafico interno/externo · Administracion de Ancho de banda · VPN's con Open VPN · Soporte Ténico comercial · Administración de servidores Linux (RedHat EL/AS, Debian, CentOs, etc) · Instalación y Configuración de Servidores · Configuración de servidores de E-Mail (Sendmail, Qmail, Postfix con virtual domains) · Antvirus con OpenSource · Administración de LVM · y mas... mucho mas
Linux Solutions C.
Acerca de
Actualidad
GNU/Linux
Gente en Línea
Tenemos 34 invitados conectado
Estadísticas
Ver contenido por hits : 192043
Acceso



Google Translation

 
Temas Relacionados

GULEV | Software Libre


Banner Advertisement
Pequeña aplicacion de Inventario RoR - Primera Parte... PDF Imprimir E-mail
Programacion Unix-Linux
Escrito por Fvasquez   
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

<p>
  <label for="articulo_articulo">Articulo:</label>
  <%= f.text_field :articulo %>
</p>
<p>
  <label for="articulo_marca_id">Marca:</label>
  <%= f.collection_select :marca_id, Marca.find(:all), :id, :marca, :prompt => "Seleccione Marca" %>
</p>
<p>
  <label for="articulo_cantidad">Cantidad:</label>
  <%= f.text_field :cantidad %>
</p>
<p>
  <label for="articulo_proveedor_id">Proveedor:</label>
 <%= f.collection_select :proveedor_id, Proveedor.find(:all), :id, :proveedor, :prompt => "Seleccione Proveedor" %>
</p>


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

<h1>Listing Articulos</h1>

<table>
  <tr>
    <th>Articulo</th>
    <th>Marca</th>
    <th>Cantidad</th>
    <th>Proveedor</th>
  </tr>
  <%- @articulos.each do |articulo|%>
    <tr>
      <td><%=h articulo.articulo %></td>
      <td><%=h articulo.marca.marca %></td>
      <td><%=h articulo.cantidad %></td>
      <td><%=h articulo.proveedor.proveedor %></td>
    
      <td><%=link_to 'Show', object_url(articulo) %></td>
      <td><%=link_to 'Edit', edit_object_url(articulo) %></td>
      <td><%=link_to 'Destroy', object_url(articulo), :confirm => 'Are you sure?', :method => :delete %></td>
    </tr>
  <% end %>
</table>
<br/>

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

<p>
  <strong>Articulo:</strong><%=h @articulo.articulo %>
</p>
<p>
  <strong>Marca:</strong><%=h @articulo.marca.marca %>
</p>
<p>
  <strong>Cantidad:</strong><%=h @articulo.cantidad %>
</p>
<p>
  <strong>Proveedor:</strong><%=h @articulo.proveedor.proveedor %>
</p>

<%= 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.

Actualizado ( Jueves, 17 de Julio de 2008 21:29 )
 


LSC Support Online
SysOp
Tech Support
Encuestas
¿Cuál es tu navegador favorito?
 
Anunciate aquí

Centro de Soluciones Linux

KoalaSoft-Sitio de Amigos

ODM SYSTEM MEXICO

No. de Visitas
mod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_countermod_vvisit_counter
mod_vvisit_counterHoy371
mod_vvisit_counterAyer636
mod_vvisit_counterEsta Semana2518
mod_vvisit_counterEste Mes9156
mod_vvisit_counterTotal76862
Linuxsc en RSS
Archivo Historico

Ultimo Reporte