Tengo dos modelos ActiveRecord:Asociación privada en los carriles
class Foo < ActiveRecord::Base
has_many :bars,:dependent=>:destroy
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
mi diseño dicta que Bar
necesidades a estar asociados a Foo
, pero Foo
se asocia únicamente a Bar
para la dependencia de la base de datos - para asegurarse de que cuando se elimina una instancia de Foo
, todas las instancias asociadas de Bar
también se eliminarán. Aparte de eso, el código que usa Foo
no debe saber acerca de Bar
, y no quiero que los métodos de asociación sean accesibles desde los objetos Foo
.
He intentado declarar private
antes de la declaración has_many
en Foo
, pero no funciona (supongo que sólo funciona para los métodos declarados directamente con def
...).
¿Hay alguna forma de hacer que la asociación sea privada o de lograr la dependencia de la base de datos sin crear una asociación Bar
en Foo
?
Gracias! También hice 'bar_ids' y' bar_ids = 'private - no tan importante como hacer que' bars' y 'bars =' sean privados, pero debe tenerse en cuenta por la integridad de la solución. –