Noa*_*ert 7 ruby ruby-on-rails separation-of-concerns web
可能的Noob警告: RoR的新功能
我试图在RoR中使用关注点.现在我只是写了一个非常简单的问题
#./app/controllers/concerns/foo.rb
module Foo
extend ActiveSupport::Concern
def somethingfoo
puts "Ayyyy! Foo"
end
end
Run Code Online (Sandbox Code Playgroud)
当我尝试在我的控制器中使用此问题时,我得到一个未定义的方法错误
#./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
Run Code Online (Sandbox Code Playgroud)
据我所知somethingfoo应该被召唤但事实并非如此.我也试过somethingfoo在一个included do ... end块中定义关注但是这也不起作用.
有什么我想念的吗?控制器可以不用这样的问题吗?
DMK*_*MKE 15
如果包含模块(扩展ActiveSupport::Concern或不扩展),则该模块的方法将成为包含类/模块的实例方法.
因此,您的Controller方法应该读取
def show
somethingfoo
render plain: "Yeah, I'm shown!"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7464 次 |
| 最近记录: |