如何在 Rails 模块中定义辅助方法?
Posted
技术标签:
【中文标题】如何在 Rails 模块中定义辅助方法?【英文标题】:How do I define a helper method in my Rails module? 【发布时间】:2016-11-25 09:54:07 【问题描述】:我使用的是 Rails 4.2.4。如何在模块中定义辅助(私有)方法?我有这个模块
module WebpageHelper
def get_url(url)
content = get_content(url)
..
end
def get_content(url)
…
end
module_function :get_url
end
我不希望方法“get_content”可以公开访问,但是使用上面的代码我得到了错误
Error during processing: undefined method `get_content' for WebpageHelper:Module
如何在我的模块中正确定义私有辅助方法?
【问题讨论】:
【参考方案1】:我认为最好的方法(主要是现有库的编写方式)通过在模块中创建一个处理所有逻辑的类来做到这一点,并且模块只是提供了一种方便的方法。
文档在这里;
Private method
或查看Here 获取一些不错的示例,例如class << self
选项。
【讨论】:
我在这里需要一个代码示例,因为如果我没看错的话,你是说使用辅助方法创建一个类,这将使该方法可以公开访问,这正是我的我尽量避免。此方法将仅在本模块中使用。 那么这个内部类的方法只能在模块本身内部访问?以上是关于如何在 Rails 模块中定义辅助方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何在Rails中正确使用控制器助手模块,以及如何在这些助手之间建立连接?
使用 RSpec 测试 Rails 辅助方法时如何在参数哈希中设置值?
如何在 Ruby on Rails 的控制台中调用控制器/视图辅助方法?