shouldn't it be: class Person < AR::B has_one :shipping_address, :class_name => 'ShippingAddress' has_one :billing_address, :class_name => 'BillingAddress' end
? On Jul 25, 10:05 am, Rakoth <[email protected]> wrote: > Hello, I think, you can to do it by using inheritance and STI for > Address model > > class Person < AR::B > has_one :shipping_address, :class_name => 'Address' > has_one :billing_address, :class_name => 'Address' > end > > class Address < AR::B > belongs_to :person > end > > class ShippingAddress < Address > end > > class BillingAddress < Address > end > > and add 'type' column to address table > > But if you want to use one address for shipping and billing, it may be > hard in this way. > > On Jul 25, 2:33 am, Emma <[email protected]> wrote: > > > > > I'm having trouble with this model: > > > class Person < AR::B > > belongs_to :shipping_address, :class_name => 'Address' > > belongs_to :billing_address, :class_name => 'Address' > > end > > > class Address < AR::B > > end > > > The problem is that I want Address to be a Value Object (as in DDD), > > and if I do this: > > p = Person.create :shipping_address => Address.new(...) > > > and later I change the address: > > p.shipping_address = Address.new(...) > > p.save > > > the first address object doesn't get deleted from the DB. It becomes > > an orphan. > > > I can inverse the association and use a has_one but then I have to put > > two foreign keys in the address table... and that could be a problem > > because there are other models that have addresses. > > > Another option could be to model both associations as composed_of but > > then I have to put all of the address table columns on the people > > table, and repeat this on the other models that have addresses too. > > > How can I solve this? Any suggestions? > > Thanks in advance.- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

