0

我有一个类 TwitterUser 有很多 TwitterLists

class TwitterUser < ActiveRecord::Base    
    has_many :twitter_lists, :dependent => :destroy
end

当我做:

user = TwitterUser.includes(:twitter_lists).find(12615489)

然后:

lists = user.twitter_lists

它在第一个“查找”中急切地加载该用户的 twitter 列表,因此当我执行 user.twitter_lists 时它不会运行查询(这是预期的)。

但是,当我尝试将用户转换为 JSON 时:user.to_json

我在 JSON 中的任何地方都看不到嵌套关联“twitter_lists”。即使我使用了急切加载。为什么是这样?我怎样才能让它出现在 JSON 中?

4

2 回答 2

1

要在您的输出中包含关联,to_json您需要传递:include => :twitter_liststo_json

急切加载的关联与输出中包含的关联之间没有任何联系to_json——两者是完全独立的。

于 2013-05-18T15:17:58.723 回答
0

检查这个答案可能是你需要的

Rails 查找方法 - 从“:include”表参数中选择列

包含仅用于急切加载。这意味着它被缓存在某处但实际上并未返回

于 2013-05-18T02:05:32.763 回答