我与一个条件有关联,该条件引用了与直接加载的对象不同的对象:
it "should point to the same object" do
user = create(:user)
user.current_location.should == nil
user.update_location(latitude: 11, longitude: 22)
user.current_location.should_not == nil
location = UserLocation.first
location.id.should == user.current_location.id
location.object_id.should == user.current_location.object_id #fails on this line
end
在我看来,关联和直接加载的对象都应该指向同一个对象。这是预期的行为吗?
以下是我模型重要部分的要点: https://gist.github.com/2635673
答案 0 :(得分:1)
这是预期的行为。 rails关联中有一个新功能,
:inverse_of
您可以在belongs_to和相应的has_many中设置此项,然后在
中设置user.current_location.users
current_location.users中用户的出现将是用户对象。
但是如果你从数据库中获得一个新的对象,它就是一个不同的对象。