在Rails中,如何使用来自模块的特定方法。例如,
# ./app/controllers/my_controller.rb
class MyController < ApplicationController
include MyModule
def action
MyModule.a_method
end
private
def a_method
...
end
end
# ------------------------------------------------ #
# ./app/helpers/my_module.rb
module MyModule
def a_method
...
end
end
MyController
包含了 MyModule
。在 action
中,我想要使用 MyModule.a_method
(请注意,我在 MyController 中也有一个私有的 a_method
,我不想使用它)。
我尝试过的方法:
1)在模块中定义该方法为self.
def self.a_method
end
2) 在控制器中使用::
符号(MyModule::a_method
)
我一直收到的错误是:Undefined method:a_method for MyModule:module
。目前,我已经为模块方法使用了不同的名称。但我想知道如何使用Module::
或Module.
符号对函数进行命名空间。
[更新-2014年11月24日]添加代码中的文件结构,因为Rails在很大程度上依赖于惯例。