可能的Noob警告: 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
区块中定义included do ... end
,但这也不起作用
有什么我想念的吗?控制器是否可以像这样使用?
答案 0 :(得分:11)
如果包含模块(由ActiveSupport::Concern
扩展或不扩展),该模块的方法将成为包含类/模块的实例方法。
因此,您的Controller方法应该阅读
def show
somethingfoo
render plain: "Yeah, I'm shown!"
end