Ho due modelli ActiveRecord:associazione privata a rotaie
class Foo < ActiveRecord::Base
has_many :bars,:dependent=>:destroy
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
Il mio progetto impone che Bar
deve essere associato a Foo
, ma Foo
è associato solo al Bar
per la dipendenza del database - fare in modo che quando un'istanza di viene eliminata, verranno eliminate anche tutte le istanze associate di Bar
. A parte questo, il codice che utilizza Foo
non dovrebbe conoscere Bar
e non voglio che i metodi di associazione siano accessibili dagli oggetti .
Ho provato dichiarando private
prima della dichiarazione has_many
in Foo
, ma non funziona (credo che funziona solo per i metodi dichiarati direttamente con def
...).
Esiste un modo per rendere privata l'associazione o per ottenere la dipendenza del database senza creare un'associazione Bar
in Foo
?
Grazie! Ho anche creato 'bar_ids' e' bar_ids = 'private - non importa quanto fare' bar' e 'bars =' private, ma dovrebbe essere notato per la completezza della soluzione. –