Initializing aggregated structures

I have a model, Vendor, which belongs_to :account, :visiting_address.
(1…1 for both)

Now, to ‘prevent redundancy’/inconsistencies, the Vendor model doesn’t
have a name attribute, but instead stores it’s name in account.name.
(Should probably be the other way around, but that’s messier)

My controller goes something like this:

@vendor = Vendor.new(:name => whatever)

While vendor has the following methods:

def initialize(*args) # param look reasonable, btw? seems to be
working atm, but…
super
self.account ||= Account.new
self.visiting_address ||= Address.new
end

def name=(name)
self.account ||= Account.new
account.name = name
end

Not the best way to go around this, I’m sure…? Suggestions?