[英]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條記錄,並且似乎正在加載應緩存的內容
如果我刪除范圍,一切都很好
知道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
方法可能是什么?
將范圍添加到has_many時,您需要顯式聲明inverse_of
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.