我有一个问题,我希望有无范围的关联,但无法得到它。在我的一个实例方法中,我有一个类似的逻辑:假设我只想使用一个父(belongs_to
)
parent_class_name = self.class.reflect_on_all_associations(:belongs_to).map(&:name).last
parent = nil
if parent_class_name.present?
parent_class_const = parent_class_name.to_s.camelize.constantize
parent_class_const.send(:unscoped) do
parent = self.send(parent_class_name)
end
end
父关联始终是默认范围,不应该是大小写。同样,我有has_many
协会的逻辑,但这也行不通。
期待着寻求帮助。
P.S我不想使用任何宝石
首先,您可以直接获取类常量:
parent_class = self.class.reflect_on_all_associations(:belongs_to).last.klass
然后你可以直接在课堂上调用unscoped
:
parent_class.unscoped do
# do the unscoped stuff here
end