[Ror-es] #include en ruby

Esteban ecorrales at mercedessoftware.com
Mon Sep 25 18:03:43 GMT 2006


Magnífica solución: funcional, sencilla, elegante, ruby-idiomática

Gracias

Claro también me gustaría entender por qué funciona, un poco de teoría 
de Ruby ya sabes, así que te disparo unas preguntas si no te molesta

1. self.abstract_class, le asigna un valor a una variable de clase (o un 
setter de clase), es este un atributo de ActiveRecord o de Object?
2. A has_* y validates_* les llamas métodos estáticos, vengo de C++ y 
Java, ahí eso equivale a un método de clase, que significa en Ruby
3. Ese código que se pone antes de la definición de métodos - como las 
llamadas a has_* y validates_* y ahora en tu ejemplo a 
setup_common_associations - en que momento se ejecuta: cuándo se define 
la clase? cuándo se instancia la clase? En algún otro momento?

Gracias Nuevamente

Xavier Noria wrote:

>On Sep 23, 2006, at 2:38 PM, Xavier Noria wrote:
>
>  
>
>>El problema que creo ver es que al ejecutar metodos estaticos como
>>has_many self es la clase abstracta (esas lineas se evaluan al
>>interpretar el codigo de creacion de la clase, no cuando la herencia)
>>y por tanto la clave foranea por defecto no es hijo_id, sino
>>abstract_id, necesita configuracion. Si no funciona supongo que
>>quiere un nombre de llave distinto por hijo, por lo que entonces
>>has_many no puede aprovecharse de ese modo.
>>    
>>
>
>Aja, visto de ese modo, si se quieren llaves por hijo y demas valores  
>por defecto por hijo como si has_many and friends se ejecutara en el  
>hijo, entonces una solucion idiomatica es:
>
>   class Abstract < ActiveRecord::Base
>     self.abstract_class = true
>
>     def self.setup_common_associations
>       has_many :foos
>       has_one  :bar
>     end
>   end
>
>   class X < Abstract
>     setup_common_associations
>   end
>
>   class Y < Abstract
>     setup_common_associations
>   end
>
>-- fxn
>
>_______________________________________________
>Ror-es mailing list
>Ror-es at lists.simplelogica.net
>http://lists.simplelogica.net/mailman/listinfo/ror-es
>
>  
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.simplelogica.net/pipermail/ror-es/attachments/20060925/5e51b2ce/attachment.htm 


More information about the Ror-es mailing list