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])
On Nov 12, 2008, at 5:29 PM, reHa wrote:
@account.contact = Contact.create(params[:contact])
On Nov 12, 11:10 pm, “T. B.” [email protected] wrote:
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])
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.
http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M001385
-Rob
Rob B. http://agileconsultingllc.com
[email protected]