在帮助器中使用命名路由的Rails(但使用类方法)

时间:2009-05-08 16:58:06

标签: ruby-on-rails routes

尝试使用this method(要点self.method_name中使用FunnyHelper,然后在视图中将其称为FunnyHelper.method_name

然而,这至少会导致一些问题 - 像h()这样的查看方法和命名路由会被破坏(模块方法def method_name可以使用它们,但在任何类方法中都没有{ {1}})

显然我可以通过将def self.method_name放回def self.method_name来避免这种情况;有没有人建议我怎样才能吃蛋糕呢?

1 个答案:

答案 0 :(得分:1)

如果确实想要这样做,您可以使用

include ActionController::UrlWriter

访问您的指定路线和

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

用于其他视图助手。但我不推荐它。在我看来,虽然在这里建议的设计模式很糟糕,我只会使用帮助:博客,尽管他们抱怨它不明确。这是真的,有点......但是一般来说Rails和Rails的这一部分都是以一种完全“非显式”的方式构建的,所以试图对抗这种情况会比它的价值更麻烦,因为你是发现。