尝试使用this method(要点self.method_name
中使用FunnyHelper
,然后在视图中将其称为FunnyHelper.method_name
。
然而,这至少会导致一些问题 - 像h()
这样的查看方法和命名路由会被破坏(模块方法def method_name
可以使用它们,但在任何类方法中都没有{ {1}})
显然我可以通过将def self.method_name
放回def self.method_name
来避免这种情况;有没有人建议我怎样才能吃蛋糕呢?
答案 0 :(得分:1)
如果确实想要这样做,您可以使用
include ActionController::UrlWriter
访问您的指定路线和
# h is a private method
ActionController::Base.helpers.send :h, "<"
用于其他视图助手。但我不推荐它。在我看来,虽然在这里建议的设计模式很糟糕,我只会使用帮助:博客,尽管他们抱怨它不明确。这是真的,有点......但是一般来说Rails和Rails的这一部分都是以一种完全“非显式”的方式构建的,所以试图对抗这种情况会比它的价值更麻烦,因为你是发现。