我正在使用Ruby on Rails。我有一个名为PatientFactory的模块,它将被包含在患者模型中。
我需要从这个模块中访问患者的身份证。
module PatientFactory
def self.included(base)
# need to access instance variable here
...
end
end
但更重要的是,我需要自我。包括(基础) 我可以在此方法之外轻松访问它,但如何在内部访问它?
答案 0 :(得分:2)
鉴于你想这样做:
class Patient < ActiveRecord::Base
include PatientFactory
end
然后你会像这样访问id:
module PatientFactory
def get_patient_id
self.id
end
end
a = Patient.new
a.id #=> nil
a.save
a.id #=> Integer
当你的模块被包含在一个类中时,它的所有方法都成为该类的实例方法。如果你喜欢扩展它们,它们会被插入到你的类的单例类中,因此它们就像是类方法一样可以被访问。
答案 1 :(得分:1)
class Patient < ActiveRecord::Base
include PatientFactory
end
然后,您可以像访问患者的方法一样访问该实例。
如果你仍然需要保留你提到的工作流程,耶胡达可能会提供一些帮助;