hola !

2009/3/30 Gabriel Sosa <[email protected]>

> buenas a todos,
>
> tengo un modelo sencillo en el cual quiero que tenga un estado:
> pendiente, aceptado, cancelado... se que puedo hacer esto con un
> tinyint, pero me gustaba mas la idea de hacerlo con enum, buscando por
> todos lados la sintaxis llegue a [1] donde me entero que no esta
> soportada por rails....
>
> alguna (idea|foro|blog post) de porque no esta implentado?... osea se
> que no es muy performante en mysql.. pero no creo que rails tenga que
> meterse en eso, osea el framework deberia permitir el uso... la
> optimizacion es un tema del desarrollador....(asi lo creo yo..)
>
> por otro lado, preguntando esto mismo en StackOverflow, me pasaron una
> solucion [2] que desde mi punto de vista parece muy limpia (ojo yo
> recien estoy aprendiendo RoR)
>
> saludos
>
> [1] http://tinyurl.com/5pex8s
> [2] http://tinyurl.com/dn8ncf
>


yo uso este tipo de definiciones

t.column :status, :enum, :limit => [:accepted, :cancelled, :pending]

en un par de proyectos y anda bárbaro. el único "tema" es que lo implementa
como un varchar y no como un enum nativo.... lo hicieron de esa forma para
que sea usable en distintas bases de datos al igual que el tipo boolean que
esta implementado con tinyint. Por mi está perfecto.

rails históricamente utiliza ciertas convenciones entre ellas la de no
utilizar store procedures o tipos nativos que no son portables. obviamente
todo esto es opinable [1] y justamente por ese motivo hay que tomarlo como
es.... personalmente no te recomiendo ir en contra las ideas del framework,
porque muchas veces a la larga puede ser complejo por ejemplo upgradear de
versión de rails..... por supuesto que para toda regla hay excepción, pero
eso depen del del projecto....

[1] http://gettingreal.37signals.com/ch04_Make_Opinionated_Software.php



:: nelson ::
artesano de software / software craftsman
http://netflux.com.ar
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a