从 Rails 3 控制器调用辅助方法

Posted

技术标签:

【中文标题】从 Rails 3 控制器调用辅助方法【英文标题】:Calling helper method from Rails 3 controller 【发布时间】:2012-02-13 02:23:23 【问题描述】:

是否可以从控制器调用辅助方法?如果是,如何在 Rails 3 中执行此操作?

【问题讨论】:

是的,这是可能的。你可以在这里找到答案:***.com/questions/453762/… 请将“view_context.some_helper_method”标记为答案,谢谢。 【参考方案1】:
 view_context.some_helper_method

【讨论】:

【参考方案2】:

您可以在控制器中包含 helper 模块,也可以将 helper 定义为控制器方法并通过 helper_method :method_name 将其标记为 helper。

class FooHelper
  def bar ... end
end

class QuxsController
  include FooHelper
end

class QuxsController
  private
  def bar ... end
  helper_method :bar
end

【讨论】:

【参考方案3】:

如果有人想在其他控制器中使用 ApplicationHelper 方法或查看只需在下面添加 include ApplicationHelper 给出,这是有效的,因为您的所有控制器都派生自 ApplicationController。

class ApplicationController < ActionController::Base
  protect_from_forgery       
  include ApplicationHelper  
end

【讨论】:

以上是关于从 Rails 3 控制器调用辅助方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ruby on Rails 的控制台中调用控制器/视图辅助方法?

从 Rails 控制台重新加载帮助程序

如何在 Rails 中正确使用控制器辅助模块,以及如何连接这些辅助模块?

辅助方法不会通过 rails 控制台中的 `reload!` 重新加载

从 Rails 中的其他控制器调用方法

如何测试作为 helper_method 公开的 Rails 控制器方法?