繁体   English   中英

在Rails控制器中包括关注模块

[英]Include a concern module in a rails controller

这是我关心的文件:controllerconcerns.rb

require 'active_support/concern'

module Query_scopes
  extend ActiveSupport::Concern
  has_scope :title
end

这是我要包含在其中的控制器:api_controller.rb

class ApiController < ApplicationController
  require 'concerns/controllerconcerns'
  include Query_scopes
  etc etc etc

这是我得到的错误:

undefined method `has_scope' for Query_scopes:Module

我已经安装了has_scope gem,如果我在要应用到的每个控制器中都说'has_scope: scopename' ,它会很好地工作,那么如何将几行“ has_scope”代码应用于所有控制器?

您应该遵循使用关注点的命名约定,并在included do块中包括您想要的内容:)

例如。

module QueryScopes
  extend ActiveSupport::Concern

   included do
     has_scope :title
   end
end

接着:

class ApiController < ApplicationController
  include QueryScopes
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM