如何从Rails控制台执行模块中的方法?

AKW*_*KWF 23 module ruby-on-rails

我在一个文件中有一个模块,my_mod.rb声明如下所示:

module Reports
  module MyMod

    def mymethod
      ...
    end

  end
end
Run Code Online (Sandbox Code Playgroud)

我只是想跑mymethod.它显然不是一个类方法,所以我不能运行它:

Reports::MyMod.mymethod
Run Code Online (Sandbox Code Playgroud)

然而我希望有一些方法可以让解析器评估该方法,而无需经过一堆module_eval和module_function的东西.它应该比那更容易,不应该吗?

Luc*_*nte 37

要从rails控制台运行它,您只需要包含它:

> include Reports::MyMod
> mymethod
Run Code Online (Sandbox Code Playgroud)

  • 优胜者!你的解决方案比我的好; 我学到了新东西. (3认同)
  • 在 Ruby 2.6.3 中不适用于我。`MyMod.mymethod` 也不工作 (2认同)