可能的菜鸟警告: 刚接触 RoR
我正在尝试在 RoR 中使用关注点。现在我只写了一个非常简单的问题
#./app/controllers/concerns/foo.rb
module Foo
extend ActiveSupport::Concern
def somethingfoo
puts "Ayyyy! Foo"
end
end
当我尝试在控制器中使用此问题时,出现未定义的方法错误
#./app/controllers/foo_controller.rb
class FooController < ApplicationController
include Foo
def show
Foo.somethingfoo # undefined method 'somethingfoo' for Foo:Module
render plain: "Ohh no, It doesnt even show me because of the error above me"
end
end
据我所知somethingfoo
应该被调用,但事实并非如此。我也尝试过定义somethingfoo
in a included do ... end
阻止关注,但这也不起作用。
我有什么遗漏的吗?关注点不能像这样与控制器一起使用吗?
如果您包含模块(扩展为ActiveSupport::Concern
或不),该模块的方法成为包含类/模块的实例方法。
因此,您的控制器方法应该读取
def show
somethingfoo
render plain: "Yeah, I'm shown!"
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)