在Rails 4.2.4中使用控制器中的帮助器

时间:2015-10-05 11:07:26

标签: ruby-on-rails ruby-on-rails-4

我对我正在阅读here的rails文档感到困惑。特别是这句话:

  

默认情况下,每个控制器都包含所有帮助程序。这些助手   只能通过.helpers

在控制器上访问

它指的是.helpers是什么?我在app/helpers/areas_helper.rb中定义了一个助手:

module AreasHelper
  def my_helper
    puts "Test from helper"
  end
end

我想在app/controllers/locations_controller.rb中使用这个助手:

class LocationsController < ApplicationController
  def show
    helpers.my_helper
  end
end

但是,我得到一个方法未定义的错误。这个.helpers应该如何使用?

我知道还有其他方法可以在控制器中访问帮助程序,但我特别询问这篇文档以及它想说的内容。

2 个答案:

答案 0 :(得分:9)

您打算在控制器中包含帮助程序类:

#app/controllers/locations_controller.rb
class LocationsController < ApplicationController
   include AreasHelper

   def show
      my_helper
   end
end

答案 1 :(得分:4)

此功能是在Rails 5中引入的,具有以下PR https://github.com/rails/rails/pull/24866

因此,我们可以在Rails 5及更高版本中使用此功能,而不是在Rails 4.x中使用。