Rails 4 не соблюдает default_scope при использовании ассоциации has_one
У меня есть класс модели, который имеет область видимости по умолчанию, что-то вроде этого
class Avatar
self.table_name = 'attachments'
belongs_to :user
default_scope -> { where(type: 'avatar') }
end
class User
has_one :avatar
end
Я ожидал User.first.avatar
вернуть первое вложение, созданное пользователем, где типом является аватар. Вместо этого я получаю первое вложение пользователя (независимо от его типа).
Я должен указать тип вручную, чтобы заставить его работать:
has_one :avatar, -> { where(type: 'avatar') }
Почему ассоциации не уважают default_scope? Я должен добавить, что Avatar.all
возвращает ожидаемые результаты (только если тип 'аватар').