关联的ActiveRecord对象重复

时间:2012-05-08 14:45:57

标签: ruby-on-rails activerecord associations

我与一个条件有关联,该条件引用了与直接加载的对象不同的对象:

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

1 个答案:

答案 0 :(得分:1)

这是预期的行为。 rails关联中有一个新功能,

:inverse_of

您可以在belongs_to和相应的has_many中设置此项,然后在

中设置
user.current_location.users

current_location.users中用户的出现将是用户对象。

但是如果你从数据库中获得一个新的对象,它就是一个不同的对象。