Ruby on rails Rails包括即时加载=>;嵌套模型不在to_json版本中?
我有一个类TwitterUser,它有许多TwitterListRuby on rails Rails包括即时加载=>;嵌套模型不在to_json版本中?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个类TwitterUser,它有许多TwitterList class TwitterUser < ActiveRecord::Base has_many :twitter_lists, :dependent => :destroy end 然后: 它在第一次“查找”时会急切地加载该用户的twitter列表,因此在我查找user.twitter\u列表时不会运行查询(这是预期的) 但是,当我尝试将用户转换为JSON时,如下所示: user.to_json 我在
class TwitterUser < ActiveRecord::Base
has_many :twitter_lists, :dependent => :destroy
end
然后:
它在第一次“查找”时会急切地加载该用户的twitter列表,因此在我查找user.twitter\u列表时不会运行查询(这是预期的)
但是,当我尝试将用户转换为JSON时,如下所示:
user.to_json
我在JSON中的任何地方都看不到嵌套的关联“twitter\u list”。尽管我使用了急切加载。为什么会这样?我如何让它出现在JSON中?检查这个答案
也许这就是你需要的
includes仅用于快速加载。这意味着它被缓存在某个地方,但实际上没有返回到以将关联包括在
到_json
的输出中。您需要将:include=>:twitter_列表
传递到到_json
急切加载的关联与包含在to_json
输出中的关联之间没有任何联系-两者完全独立
user = TwitterUser.includes(:twitter_lists).find(12615489)
lists = user.twitter_lists