ruby-on-rails - RoR,从模块调用列名

标签 ruby-on-rails ruby ruby-on-rails-3

我正在使用 Ruby on Rails。我有一个名为 PatientFactory 的模块,它将包含在 Patient 模型中。

我需要从该模块访问患者的 ID。

module PatientFactory

  def self.included(base)

    # need to access instance variable here
    ...

  end
end

但更重要的是,我需要在 self.included(base) 我可以在此方法之外轻松访问它,但如何在内部访问它?

最佳答案

假设你想这样做:

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

当你的模块被包含在一个类中时,它的所有方法都成为该类的实例方法。如果您更愿意扩展它们,它们会被插入到您类的单例类中,因此它们可以像类方法一样访问。

关于ruby-on-rails - RoR,从模块调用列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12959873/

相关文章:

ruby-on-rails - 如何传递参数[:search] with autocomplete_field_tag?

ruby-on-rails - Rails fields_for 验证后现有记录的重复表单

ruby - 如何调用父类(super class)方法

ruby-on-rails - 工厂女工与制造的比较

ruby-on-rails - 带回形针的 ruby​​ 1.9.2 lambda

ruby-on-rails - 如何找到实例变量的源位置?

ruby-on-rails - 嵌套表单中的 collection_check_boxes 无法正确插入多对多连接表

ruby-on-rails - Rails 6 - 尽管添加了 rails/ujs,但破坏了 GET 路径

ruby-on-rails-3 - 在 Rails 测试中手动重新连接到数据库

ruby-on-rails - 在 Flash 警报 Rails 3 中显示错误消息