Ruby on Rails:适用于所有控制器的Global Helper方法

时间:2010-06-17 15:42:51

标签: ruby-on-rails

如何设置我想要从所有控制器访问的方法?

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

5 个答案:

答案 0 :(得分:37)

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

您需要创建方法protected,使其仅对子类可见,并且不可用作可通过Web访问的操作。

答案 1 :(得分:17)

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

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

helper :all

答案 2 :(得分:7)

坚持lib。帮助者意图用于观点;如果您有特定于应用程序的库(以及“库”,我指的是您的应用程序使用的任何代码,以及“特定于应用程序”的任何不属于vendor的任何代码),lib是去的地方。

答案 3 :(得分:1)

答案 4 :(得分:0)

在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/