Ruby on rails Ruby-在self.method中引用另一个类
我有两个班,个人和会员。成员资格有一个名为individual_ID的方法,该方法返回一个ID数组,我想检索在该数组中具有ID的人员: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
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的魔力有时会使调试变得困难。