我有一個簡單的連接查詢,它在某些情況下返回具有未初始化關聯的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在某些情況下不會初始化返回對象的關聯嗎?我會感激任何一半的想法,因爲我卡住了。