Ruby on rails 如何通过";“助手”;Rails3中的方法?
我正在尝试创建如下自定义帮助器:Ruby on rails 如何通过";“助手”;Rails3中的方法?,ruby-on-rails,ruby-on-rails-3,helper,Ruby On Rails,Ruby On Rails 3,Helper,我正在尝试创建如下自定义帮助器: # 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 #app/controllers/my_control
# 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
#app/controllers/my_controller.rb
类MyController
但是,我得到了以下错误:
undefined local variable or method `foo' for #<MyController:0x20e01d0>
未定义的局部变量或方法“foo”#
我缺少什么?可以从视图而不是控制器访问帮助程序。因此,如果您尝试将以下内容放入索引模板中,它应该会起作用:
#my/index.html.erb
<%= foo %>
#my/index.html.erb
如果您确实希望从控制器访问某些内容,那么应该使用include语法而不是helper,但在这种情况下,不要将其命名为helper模块。通常,我会做相反的操作:我使用控制器方法作为帮助器
class MyController < ApplicationController
helper_method :my_helper
private
def my_helper
"text"
end
end
class MyController
在控制器中只包含helper作为mixin如何
class MyController < ApplicationController
include MyHelper
def index
puts foo
end
end
class MyController
我不知道你可以这么做。。。虽然在某些方面我希望我现在不知道:P(它有很大的潜力被过度使用)啊哈:)强大的力量带来巨大的责任;)