Old Emmanuel Oga's Weblog (new one is at www.emmanueloga.com)

Constantes, Enums y demas yerbas en rails

Posted in rails, ruby, Uncategorized by emmanueloga on junio 29, 2007

Construyendo una aplicacion rails me encontre con la necesidad de crear constantes dentro de un model de mi base:

# == Schema Information
# Schema version: 22
# Table name: events
#  id             :integer(11)   not null, primary key
#  event_type     :integer(11)   not null
#  text           :string
#  ...

class ReqEvent  [ADD_INFORMATION, REFRESH_PRODUCTS, OTHER_EVENT]

Mas feo todavia. Y todavia falta algo mas: generar la lista de opciones para los forms donde se cargue el tipo de evento:

  POSIBLE_TYPES= [
    # Displayed               Stored in DB
    ['Agregar Informacion',  :ADD_INFORMATION],
    ['Actualizar Productos', :REFRESH_PRODUCTS]
    ['Otros',                :OTHER_EVENT]
  ]

para despues poder hacer en la vista:

  select_tag 'req_event[event_type]', options_for_select(ReqEvent::POSIBLE_TYPES), :id => 'req_event_event_type'

Ahhhh!!! ya es demasiado, la misma constante tres veces!!! Bueno, en ruby siempre hay una forma de simplificar este tipo de cosas.

Aqui esta como lo hice: http://pastie.caboo.se/82509

Ese es el contenido de enums.rb, lo coloque en /lib y lo cargue mediante la siguiente linea en enviroment.rb:

require 'lib/enums' # Custom enumerations
Tagged with: ,

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: