Rails 通过 Jbuilder 部分包含
Rails include through Jbuilder partial
我有一个 jbuilder show 呈现部分:
json.contents @item_trackers, partial: 'item_trackers/item_tracker', as: :it
在这一部分中,我通过 it 变量访问我的 pages_trackers 关联:
json.pages it.pages_trackers.order("created_at ASC")
问题是当请求被触发时,它加载属于[=32]的每个page_tracker =]item_tracker(每个请求一个)。
我已经尝试在我的控制器中包含 pages_trackers 模型:
item_trackers.includes([:pages_trackers])
但它仍然会在每个 page_tracker 加载并且我有 "unused eager loading" 消息:
检测到未使用的预加载
ItemTracker => [:pages_trackers]
从您的查找器中删除::includes => [:pages_trackers]
有人可以帮我解决这个问题吗?
我发现了问题所在:
当我在局部调用 order 方法时,它强制再次触发请求。
所以我改变了 SQL 方法 order 对应的 Ruby:sort_by(&:created_at)
我有一个 jbuilder show 呈现部分:
json.contents @item_trackers, partial: 'item_trackers/item_tracker', as: :it
在这一部分中,我通过 it 变量访问我的 pages_trackers 关联:
json.pages it.pages_trackers.order("created_at ASC")
问题是当请求被触发时,它加载属于[=32]的每个page_tracker =]item_tracker(每个请求一个)。
我已经尝试在我的控制器中包含 pages_trackers 模型:
item_trackers.includes([:pages_trackers])
但它仍然会在每个 page_tracker 加载并且我有 "unused eager loading" 消息:
检测到未使用的预加载 ItemTracker => [:pages_trackers] 从您的查找器中删除::includes => [:pages_trackers]
有人可以帮我解决这个问题吗?
我发现了问题所在:
当我在局部调用 order 方法时,它强制再次触发请求。
所以我改变了 SQL 方法 order 对应的 Ruby:sort_by(&:created_at)