[Ror-es] #include en ruby
Xavier Noria
fxn at hashref.com
Sat Sep 23 13:22:42 GMT 2006
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
More information about the Ror-es
mailing list