从Rails View调用模块的公共实例方法

时间:2016-01-24 01:54:22

标签: ruby-on-rails ruby actionview

如何使用方法的完整路径在Ruby中调用模块方法?

示例 - Rails的ActionView提供translate辅助方法(see here),提供i18n翻译。

该方法显然位于模块路径ActionView::Helpers::TranslationHelper下。我甚至可以确认translate是该模块中的方法之一(从我的rails视图的上下文中调用

> ActionView::Helpers::TranslationHelper.instance_methods
=> [:translate,
 :t,
 :localize,
 :l,
 :tag,
 :content_tag,
 ...

但每当我用完整路径直接调用它时(仍然来自我的rails视图),我得到一个未定义的方法错误 -

> ActionView::Helpers::TranslationHelper::translate("foo")
NoMethodError: undefined method `translate' for ActionView::Helpers::TranslationHelper:Module
from (pry):15:in `_app_views_log_ins_show_html_erb__4260732925355773979_2249797460'

编辑:我知道我可以直接调用translate,因为该模块已包含在内。问题的核心是我理论上如何通过它的完整模块路径来引用它

0 个答案:

没有答案