首页 > 解决方案 > 在 rails 中使用带有 class_name 的范围

问题描述

我正在使用带有 mongoid 的 rails 5.1。

我有一个范围的类

class Attachment
    scope :documents, -> { where(is_document: true) }

然后在 Attachment 引用的另一个类上,我想获取所有作为文档的附件。

class User
  has_many :documents, class_name: 'Attachment', foreign_key: :user_id

以上选择了所有附件,并且不考虑收集所有 is_document 等于 true 的范围文档。

标签: ruby-on-railsmongoid

解决方案


has_many您可以在您的关联中将范围作为 proc 传递

class User
  has_many :documents, -> { documents }, class_name: 'Attachment', foreign_key: :user_id
end

推荐阅读