Ruby on rails Ruby-在self.method中引用另一个类

Ruby on rails Ruby-在self.method中引用另一个类,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有两个班,个人和会员。成员资格有一个名为individual_ID的方法,该方法返回一个ID数组,我想检索在该数组中具有ID的人员: class Membership def self.individuals where(membershipable_type: 'individual') end def self.individuals_ids individuals.pluck(:membershipable_id) end end class Pe

我有两个班,个人和会员。成员资格有一个名为individual_ID的方法,该方法返回一个ID数组,我想检索在该数组中具有ID的人员:

class Membership

  def self.individuals
    where(membershipable_type: 'individual')
  end

  def self.individuals_ids
    individuals.pluck(:membershipable_id)
  end
end


class Person

  def self.individuals
    Person.where(id: Membership.individuals_ids)
  end

end
当我尝试运行Person.personals时,我被告知:

NameError: uninitialized constant Person::Membership
我如何从上述self方法调用中引用成员类,而不是认为我指的是Person.Membership


谢谢

当两个类都在同一个文件中时,代码工作正常<代码>会员资格类别由
人员
类别查找:

class Membership
  def self.individuals
    puts "Membership.individuals"
  end

  def self.individuals_ids
    puts "Membership.individuals_ids"
  end
end

class Person
  def self.individuals
    puts "Person.individuals"
    Membership.individuals_ids
  end
end

Person.individuals

#=> Person.individuals
#=> Membership.individuals_ids
这意味着你的
会员资格
类不是Rails提供的。您可以确保
Membership.rb
中定义了
Membership
,并且:

  • membership.rb
    移动到
    app
    文件夹
  • 将所需路径添加到

如果引用正确,实际问题是为什么不加载它。包含
成员资格
类的文件名是什么?它位于哪里?如果您启动控制台并键入
成员资格
是否会出现未初始化的常量错误?很抱歉浪费您的时间-这是我的输入错误-正如您所说,上面的代码工作正常。没问题。我去过那里,做过那件事。Rails的魔力有时会使调试变得困难。