0

我的数据是这样设置的:一个 Chat has_many messages 一个 Message has_rich_text :detail_html

无论如何,我正在尝试做一个返回所有聊天的查询。该查询看起来像这样:

Chat.all.includes(:messages)

但是,由于 ActionText,我注意到我仍然有一个有意义的 N+1 查询。我见过像 Message.all.with_rich_text_meal_details 这样的东西,但问题是我不是用 has_rich_text 查询表,而是查询相关表。有任何想法吗?谢谢!

4

1 回答 1

1

范围:“with_rich_text_#{name}”,-> {包括(“rich_text_#{name}”)}

源代码来看,has_one rich_text_*Model添加的has_rich_text. 在你的情况下,Message has_one rich_text_meal_details.

因此,您可以尝试meal_details通过以下方式进行预加载:

Chat.all.includes(messages: :rich_text_meal_details)
于 2021-03-09T02:12:48.317 回答