Ruby on rails 如何在模块中引用Rails中的类实例?

Ruby on rails 如何在模块中引用Rails中的类实例?,ruby-on-rails,ruby,module,Ruby On Rails,Ruby,Module,我正在尝试删除Rails应用程序中的一些代码,这些代码允许在使用过滤器创建对象时设置唯一id。我有它在多个位置,它似乎应该在一个模块,而不是 现在我在每一个模型中都有类似的东西 def set_uid self.uid = SecureRandom.uuid end 我在文件uid_generator.rb的/lib目录中包含了一个新文件,并将该模块包含在每个模型中 //model include UidGenerator module UidGenerator d

我正在尝试删除Rails应用程序中的一些代码,这些代码允许在使用过滤器创建对象时设置唯一id。我有它在多个位置,它似乎应该在一个模块,而不是

现在我在每一个模型中都有类似的东西

  def set_uid
    self.uid = SecureRandom.uuid
  end
我在文件uid_generator.rb的/lib目录中包含了一个新文件,并将该模块包含在每个模型中

//model   
include UidGenerator

module UidGenerator
  def set_uid
    self.uid = SecureRandom.uuid
  end
end
然而,在我的测试中,这会产生错误

uninitialized constant MODELNAME::UidGenerator (NameError).

您只需要为rails应用程序配置自动加载路径。下面是一些可能有用的东西

您只需要为rails应用程序配置自动加载路径。下面是一些可能有用的东西

现在我有了这个路径:config.autoload_paths+=%W(#{config.root}/lib/modules/)如果你想把它放在lib/modules中,那么你需要称你为模块“modules::uidgegenerator”以便自动加载工作。谢谢,我发现这篇博客文章也很有帮助:现在我有了这个路径:config.autoload_paths+=%W(#{config.root}/lib/modules/)如果你想把它放在lib/modules中,那么你需要称你为modules“modules::UidGenerator”以便自动加载工作。谢谢,我发现这篇博文也很有帮助: