【问题标题】:Rails using named routes within helper (but with class methods)Rails 在帮助器中使用命名路由(但使用类方法)
【发布时间】:2009-05-08 16:58:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: ruby-on-rails routes


    【解决方案1】:

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

    include ActionController::UrlWriter
    

    访问您命名的路线和

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 2011-09-06
      • 2011-08-14
      相关资源
      最近更新 更多