【问题标题】:Ruby on Rails: Global Helper method for all controllersRuby on Rails:所有控制器的全局 Helper 方法
【发布时间】:2011-03-05 01:03:33
【问题描述】:

如何设置我希望所有控制器都可以访问的方法?

将方法粘贴在 application_helper 中只是使其可用于视图

【问题讨论】:

标签: ruby-on-rails


【解决方案1】:

您可以将方法添加到ApplicationController。所有其他控制器子类ApplicationController,因此将能够调用该方法。

您需要创建 protected 方法,以便它只对子类可见,并且不能作为 Web 可访问的操作使用。

【讨论】:

  • 这是一个很棒的方法! + 500
【解决方案2】:

您可以在您的控制器(或基础 ApplicationController)中使用include ApplicationHelper 以使辅助方法可用。

您还可以在 ApplicationController 中包含以下行以包含所有帮助程序:

helper :all

【讨论】:

  • 我没有包含ApplicationHelper,但是你说的让我可以在app/controllers/中创建一个shared.rb
【解决方案3】:

粘贴到lib。助手是用来在视图中使用的;如果您有特定于应用程序的库(“库”是指您的应用程序使用的任何代码,以及“特定于应用程序”的任何不属于vendor 的代码),lib 是您可以去的地方。

【讨论】:

    【解决方案4】:

    【讨论】:

      【解决方案5】:

      在 rails 3 中,您可以使用:控制器中的 view_context 对象来访问视图辅助方法。例如,

      class ApplicationController < ActionController::Base
         def some_method
           view_context.some_view_helper_method
         end
      end
      
      module ApplicationHelper
        def some_view_helper_method
        end
      end
      

      看看这个: http://wowkhmer.com/2011/09/09/use-view-helper-methods-in-rails-3-controller/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-18
        相关资源
        最近更新 更多