0

尝试使用此方法(其中的要点在 中使用self.method_nameFunnyHelper然后在视图中调用它FunnyHelper.method_name)。

然而,这至少会导致几个问题——视图方法h()和命名路由被破坏(它们可以使用模块方法def method_name,但不能用于任何类方法def self.method_name

def self.method_name显然,我可以通过回退到def method_name;来避免这种情况。有人对我如何吃蛋糕有任何建议吗?

4

1 回答 1

1

如果你真的想这样做,你可以使用

include ActionController::UrlWriter

访问您的命名路线和

# h is a private method 
ActionController::Base.helpers.send :h, "<"

对于其他视图助手。但我不会推荐它。在我看来,thinkobt 在这里建议的设计模式很糟糕,我只会使用 helper :blogs,尽管他们抱怨它并不明确。这是真的,有点……但总的来说,Rails 尤其是 Rails 的这一部分是以完全“非显式”的方式构建的,所以试图与之抗争将比它的价值更麻烦,因为你是发现。

于 2009-05-08T18:58:54.863 回答