【发布时间】:2014-07-17 07:14:24
【问题描述】:
我正在尝试从另一个控制器助手调用一个控制器助手(模块)中的方法。这似乎是不可能的,即使那个方法在module_function下。
我想我在 Ruby 中缺少一个基本原则,因为我还是个新手。另外感觉我错过了如何在 Rails 下编写正确的 OOP。
更新:这是一个例子:
我有 FirstController 和 SecondController,每个都有帮助模块
module FirstHelper
module_function
def methodA
...
end
end
module SecondHelper
def methodB
FirstHelper.methodA
end
end
从SecondHelper 对FirstHelper.methodA 的调用返回错误:
SecondHelper:Module 的未定义方法 `methodA'
【问题讨论】:
-
您能否更具体地说明您想做什么,举个例子会很好:D
-
从另一个助手的方法调用一个助手的方法应该不是问题。你能把你的控制器和助手贴出来仔细看看吗?
-
我刚刚复制了你的代码(使用简单的 mods),我没有发现问题... module FirstHelper module_function def methodA "Hello there" end end module SecondHelper module_function def methodB FirstHelper.methodA end end puts SecondHelper.methodB => 你好
-
您是否在第二个模块like this 中“包含”了您的第一个模块?
标签: ruby-on-rails ruby oop module