Can't create has_one record

Hello all. I have the following code in my Accounts controller:

@account = Account.create(params[:account]) @website = @account.websites.create(params[:website]) @contact = @account.contact.create(params[:contact])

My Account model has_one :contact and my Contact belongs_to :account, yet I get the following error:

NoMethodError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.create

- - - - - -

I've scoured the documentation and can't find where I'm mucking things up. Any help is greatly appreciated!

-tb

@account = Account.create(params[:account])

now you have new account - contact is empty

@account.contact is nil -> calling @account.contact.create is the same as calling nil.create

try:

@account = Account.create(params[:account]) @account.contact = Contact.create(params[:contact])

@account = Account.create(params[:account])

now you have new account - contact is empty

@account.contact is nil -> calling @account.contact.create is the same as calling nil.create

try:

@account = Account.create(params[:account]) @account.contact = Contact.create(params[:contact])

Hello all. I have the following code in my Accounts controller:

@account = Account.create(params[:account]) @website = @account.websites.create(params[:website]) @contact = @account.contact.create(params[:contact])

@contact = @account.create_contact(params[:contact])

My Account model has_one :contact and my Contact belongs_to :account, yet I get the following error:

NoMethodError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.create

- - - - - -

I've scoured the documentation and can't find where I'm mucking things up. Any help is greatly appreciated!

-tb

It's right there in the docs for has_one. Compare to the similar semantics for has_many associations that you're obviously familiar with.

-Rob

Rob Biedenharn http://agileconsultingllc.com Rob@AgileConsultingLLC.com