簡體   English   中英

具有STI的作用域的has_many超級慢

[英]has_many with a scope super slow with STI

class User < ApplicationRecord
  has_many :buckets, -> { order(ranked_row: :asc) }
  delegate :incomes, :fixed_costs, :financial_goals, to: :buckets

  ...
end

我有STI桶。 如果我將該范圍添加到has_many中,則我的頁面將永久保留9條記錄,並且似乎正在加載應緩存的內容

74s ...

如果我刪除范圍,一切都很好

3秒...

知道has_many的范圍如何影響STI? rank_row有一個索引,但是無論如何都相同。 我正在使用active_model_serializers,但不確定是否存在關聯。

更新資料

肯定是帶有active_model_serializers的東西。 ActiveModel::SerializableResource.new(user)在控制器中,並且在控制台中也停滯不前。 我從序列化程序中刪除了所有內容,然后調用了作用域已定義的has_many。 我會上github。

https://gist.github.com/dudo/f25767f00c874842a005

那是我可能導致問題的最小代碼。 同樣,在has_many上沒有作用域的情況下,它也可以正常工作,並且還可以從Bucket中刪除percent_complete方法...該方法看起來不太討厭。 當存在作用域時,將其爬網的included_transactions方法可能是什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM