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

    ... 
end 

У меня есть ведра, которые STI'd. Если добавить эту область к has_many, моя страница берет навсегда на 9 записей, и, кажется, нагружать то, что должно быть кэшированныеhas_many с областью супер медленный с STI

74s...

Если удалить сферу, все хорошо

3s...

Любая идея, как область действия has_many влияет на STI? У ranked_row есть индекс, но он тот же, независимо. Я использую active_model_serializers, но я не уверен, есть ли корреляция.

Update

Определенно что-то с active_model_serializers. ActiveModel::SerializableResource.new(user) находится в контроллере, а также пугает в консоли. Я удалил все, начиная с сериализатора, и назвал область видимости has_many. Я попаду в github.

Код

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

Это самый маленький кусочек кода, который я мог бы получить, чтобы вызвать проблему. Опять же, он отлично работает без области действия has_many, а также работает с удалением метода percent_complete из Bucket ... этот метод не выглядит слишком противным. Что может быть в том методе included_transactions, который приводит его к обходу при наличии области видимости?

+0

Изменение поведения при удалении делегации? я попытаюсь создать минимальный набор, чтобы воспроизвести это и сообщить об ошибке http://edgeguides.rubyonrails.org/contributing_to_ruby_on_rails.html#create-an-executable-test-case – phoet

+0

не отображается. Я сменил их на индивидуальное has_many, то же самое. – Dudo

+0

Я думаю, проблема может быть в моделях/bucket.rb. Источник, или этого не произошло. – gizmore

ответ

Смежные вопросы