我对我正在阅读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
应该如何使用?
我知道还有其他方法可以在控制器中访问帮助程序,但我特别询问这篇文档以及它想说的内容。
答案 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中使用。