Setting foreign keys, yet record.association_name returning nil

12 views
Skip to first unread message

Sadaf Noor

unread,
Sep 5, 2015, 11:23:26 AM9/5/15
to rubyonra...@googlegroups.com
Please help me to understand why this piece of rspec code is behaving this way. I am setting product_id to my record, and it is asserting true, but yet record.product not returning anything.

product = FactoryGirl.create(:product)

post :create, {:tshirt => FactoryGirl.attributes_for(:tshirt).stringify_keys.merge("product_id"=> product.id.to_s) } #successful creation
expect(Tshirt.last.product_id).to eq(product.id)  # asserts true
puts Tshirt.last.product #prints nothing
expect(Tshirt.last.product.size).to eq(product.size)  # exception!!! it says, product = nil


--
 Md. Sadaf Noor (@sadaf2605)
 www.sadafnoor.com

Sadaf Noor

unread,
Sep 5, 2015, 11:29:17 AM9/5/15
to rubyonra...@googlegroups.com

Jim Ruther Nill

unread,
Sep 6, 2015, 12:40:25 AM9/6/15
to rubyonra...@googlegroups.com


On Saturday, September 5, 2015, Sadaf Noor <em...@sadafnoor.com> wrote:

2015-09-05 21:22 GMT+06:00 Sadaf Noor <em...@sadafnoor.com>:
Please help me to understand why this piece of rspec code is behaving this way. I am setting product_id to my record, and it is asserting true, but yet record.product not returning anything.

product = FactoryGirl.create(:product)

post :create, {:tshirt => FactoryGirl.attributes_for(:tshirt).stringify_keys.merge("product_id"=> product.id.to_s) } #successful creation
expect(Tshirt.last.product_id).to eq(product.id)  # asserts true
puts Tshirt.last.product #prints nothing

Check how product is defined in the tshirt model. Also check the value of product.id, it may be nil for all we know and tshirt.product_id is also nil so they're equal.
 
expect(Tshirt.last.product.size).to eq(product.size)  # exception!!! it says, product = nil


--
 Md. Sadaf Noor (@sadaf2605)
 www.sadafnoor.com



--
 Md. Sadaf Noor (@sadaf2605)
 www.sadafnoor.com

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAAJ2eVqf%2BfSe7o%3DiA-PE3Sp_Bk23b-eNCiLumYvqB1iPXwiZQQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


--
Sent from Gmail mobile

Sadaf Noor

unread,
Sep 6, 2015, 2:55:46 AM9/6/15
to rubyonra...@googlegroups.com
good point but nope, they are not nil


For more options, visit https://groups.google.com/d/optout.



--

Colin Law

unread,
Sep 6, 2015, 3:44:38 AM9/6/15
to Ruby on Rails: Talk
On 6 September 2015 at 07:54, Sadaf Noor <em...@sadafnoor.com> wrote:
good point but nope, they are not nil

What do the following show?
puts TShirt.last.inspect
puts product.inspect
puts Tshirt.last.product.inspect

and copy/paste the start of t_shirt.rb showing the associations

Colin
 
Reply all
Reply to author
Forward
0 new messages