Возможно, немного опоздал на вечеринку (всего 3 года), но столкнулся с той же проблемой, и решение от Тобиаса, безусловно, верное направление, но оно может быть упрощено для Rails 3.2+. Единственное, что мне до сих пор не нравится, это «жестко закодированное» имя класса для Document, возможно, его можно изменить, используя отражение ...
Во всяком случае, это то, что я придумал:
class Comment < ActiveRecord::Base
# Document has some kind of default_scope
belongs_to :document
# Ensure document is not scoped, because Rails 3.2 uses modules it's
# possible to use simple inheritance.
def document
Document.unscoped { super }
end
end
Обновление : получено общее решение, основанное на refle_on_association https://gist.github.com/2923336