我有一个简单的连接查询,它在某些情况下返回具有未初始化关联的ActiveRecord对象,并试图理解原因。 (我的设置:导轨2.3.8与MySQL)ActiveRecord返回具有未初始化关联的模型对象
这里是我的模型:
class Member
has_many :twitter_status_relations
//has some more unrelated associations
end
class TwitterStatus
has_many :twitter_status_relations
end
class TwitterStatusRelation
belongs_to :member
belongs_to :twitter_status
end
这里是我的查询执行:
result = TwitterStatusRelation.all(:joins => :twitter_status,
:conditions=>{:twitter_statuses=>{:sent_at=>1.month.ago..DateTime.now}}, :include=>:member,:group=>"twitter_status_relations.member_id")
现在,当我在它的运行在应用程序第一次,它工作正常:
print result[0].member, result[0].member.class.reflect_on_all_associations(:has_many)
#=> <Member...>, [<ActiveRecord::Reflection::AssociationReflection,...]
但是,当我再次运行它,并尝试访问该成员的任何社团,我得到无前ception。打印显示以下内容:
print result[0].member, result[0].member.class.reflect_on_all_associations(:has_many)
#=> <Member...>, [-- empty ---]
貌似成员对象没有任何关联,所以当我尝试访问任何信息,我得到一个异常。
你知道为什么ActiveRecord在某些情况下不会初始化返回对象的关联吗?我会感激任何一半的想法,因为我卡住了。