我正在尝试创建一个这样的自定义助手:
# app/controllers/my_controller.rb
class MyController < ApplicationController
helper :my
def index
puts foo
end
end
# app/helpers/my_helper.rb
module MyHelper
def foo
"Hello"
end
end
但是,我收到了以下错误:
undefined local variable or method `foo' for #<MyController:0x20e01d0>
我错过了什么?
答案 0 :(得分:3)
一般来说,我的反面是:我使用控制器方法作为助手。
class MyController < ApplicationController
helper_method :my_helper
private
def my_helper
"text"
end
end
答案 1 :(得分:1)
可以从视图而不是控制器访问助手。因此,如果您尝试将以下内容放入索引模板中,它应该可以工作:
#my/index.html.erb
<%= foo %>
如果您确实想要从控制器访问某些内容,那么您应该使用include语法而不是helper,但在这种情况下不要将其命名为辅助模块。
答案 2 :(得分:0)
如何将帮助器作为mixin包含在控制器中......
class MyController < ApplicationController
include MyHelper
def index
puts foo
end
end