Как заказать по атрибуту родителя для полиморфной модели в ActiveRecord? - PullRequest
0 голосов
/ 01 сентября 2010

Я думаю, что правильно сформулировал ...

У меня есть модель, называемая активом, которая полиморфна:

class Asset < ActiveRecord::Base
  belongs_to :assetable, :polymorphic => true
...
end

У меня есть метод уровня класса, который действует как область действия:

def self.some_scope
     assets = Asset.joins(:assetable).where('assetable.approved_at IS NOT NULL').order('assetable.approved_at DESC').limit(50)
end

Я пытаюсь получить список активов, у которых атрибут approved_at родителя не равен нулю, и упорядочить по этому атрибуту approved_at в порядке убывания с пределом 50. Я признаю, что я 'Я не уверен, насколько я близок к тому, чтобы быть правильным, но ошибка, которую я сейчас получаю:

"Can not eagerly load the polymorphic association :assetable"

1 Ответ

0 голосов
/ 01 сентября 2010

Правильный способ сделать это состоит в том, чтобы думать об этом иначе:

# If assetable model is called Folder
def self.some_scope
   folders = Folder.where('approved_at IS NOT NULL').order('approved_at DESC').limit(50)
   folders.collect{|p| p.assets}
end
...