我有一个TwitterUser类,有许多TwitterLists
class TwitterUser < ActiveRecord::Base
has_many :twitter_lists, :dependent => :destroy
end
当我这样做时:
user = TwitterUser.includes(:twitter_lists).find(12615489)
然后:
lists = user.twitter_lists
它急切地在第一个“查找”中加载该用户的推特列表,因此当我执行user.twitter_lists(这是预期的)时,它不会运行查询。
但是当我尝试将用户转换为JSON时: user.to_json
我没有在JSON中的任何地方看到嵌套关联“twitter_lists”。即使我使用了急切的装载。为什么是这样?我怎样才能让它出现在JSON中?
答案 0 :(得分:1)
要将关联包含在to_json
的输出中,您需要将:include => :twitter_lists
传递给to_json
急切加载的关联与to_json
输出中包含的关联之间没有联系 - 两者完全无关。
答案 1 :(得分:0)
检查这个答案 可能这就是你需要的
Rails find method - select columns from ":include" table parameter
包含仅用于急切加载。这意味着它在某处缓存但实际上没有返回