是否可以通过关注点添加控制器操作?
我试图通过关注包含一个控制器动作,但它没有找到:
module Wizbang
module ActsAsWizbang
extend ActiveSupport::Concern
included do
def foo
# do something
end
end
end
我已将适当的路线添加到我的路线文件中,但它无法在控制器上找到该操作。
当我在控制器中包含此代码时
class SimpleController < ApplicationController
include Wizbang::ActsAsWizbang
end
我收到消息:
The action 'foo' could not be found for SimpleController.
答案 0 :(得分:2)
如果要定义混合到类中的方法,只需在模块中定义它们即可。它们不会进入included
块:
module Wizbang
module ActsAsWizbang
extend ActiveSupport::Concern
def foo
# do something
end
end
end
答案 1 :(得分:0)
仔细检查您的include语句是否可以正确解析。
最近我掉进了这个兔子洞,但是我的问题不是我做错了问题-这是因为我使用的include语句不正确,但是错误以某种方式被吞噬了,我看到了。我最终得到了类似以下内容,但您的情况可能有所不同。
module Api::V1::Concerns
module Foo
extend ActiveSupport::Concerns
...
module Api::V1::Bar
class BazController < ActionController::API
include Api::V1::Concerns::Foo