Emilio, lo que quería plasmar era algo así (pongo el caso práctico de una) (con DataMapper):
class Operador include DataMapper::Resource property :id, Serial timestamps :at *has n, :tipo_de_servicios *end class TipoDeServicio include DataMapper::Resource property :id, Serial property :operador_id, Integer property :tipo, Discriminator property :nombre, String belongs_to :operador end class TipoDeHosting < TipoDeServicio property :quota, Integer # ... end class TipoDeConectividad < TipoDeServicio property :bw_upload, Integer # ... end Concretamente queríamos lograr que las instancias de *TipoDeHosting* no tuvieran los métodos y ni conocieran a los métodos de *TipoDeConectividad*, pero si compartieran los de *TipoDeServicio (el parent)*. Además debían estar en la misma tabla para no tener problemas de eager loading. Hay un par de razones más, pero no las recuerdo en este momento. Escucho ofertas! Lucas Florio Developer ---- Personal: http://www.lucasefe.com.ar/ 2009/7/16 Carlos Di Giacomo <[email protected]> > > > 2009/7/14 Lucas Florio <[email protected]> > >> Buenas, Rubias >> >> Estoy teniendo el siguiente tema. Quiero implementar STI pero quiero >> evitar que se muestren los campos/atributos que no corresponden a una clase >> específica. El ejemplo sería este: >> >> class Componente < AR::Base >> # nombre: string >> end >> >> class ComponenteUno < Componente >> # campo1 >> end >> >> class ComponenteDos < Componente >> # campo2 >> # campo3 >> end >> >> La Tabla componentes contiene a todos los campos (nombre, campo(1..3)). >> La idea es que ComponenteDos.new no responda a campo1. >> Y que ComponenteUno no responda a campo2 ni a campo3. >> Yo me había imagino un mixin de esta forma, pero no se si existe algo así >> ya: >> >> class ComponenteDos < Componente >> properties :campo2, :campo3 # y que te oculte lo demás >> # Sé que con DataMapper seguramente lo pueda hacer, pero quería >> intentarlo con AR antes. >> end >> > > > Lucas, por curiosidad podrias dar un ejemplo en que casos se necesita > manejar la composicion así?, nunca pense la herencia asi > > saludos > > >> >> Alguna idea? Saben de algo así? >> >> Desde ya muchas gracias >> >> Lucas Florio >> Developer >> ---- >> Personal: http://www.lucasefe.com.ar/ >> >> _______________________________________________ >> Ruby mailing list >> [email protected] >> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar >> >> > > _______________________________________________ > Ruby mailing list > [email protected] > http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar > >
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
