0

多くの TwitterLists を持つクラス TwitterUser があります

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_listsますto_json

積極的に読み込まれる関連付けと、出力に含まれる関連付けの間には関係がありませんto_json。この 2 つは完全に独立しています。

于 2013-05-18T15:17:58.723 に答える
0

この回答を確認してください これはあなたが必要としているものかもしれません

Rails find メソッド - ":include" テーブル パラメータから列を選択

includes は熱心な読み込み専用です。つまり、どこかにキャッシュされますが、実際には返されません

于 2013-05-18T02:05:32.763 に答える