在rails控制器中包含一个关注模块

时间:2014-08-02 03:40:26

标签: ruby-on-rails module include require has-scope

这是我的关注文件: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',它工作正常...那么我怎样才能应用几行&#39; has_scope&#39;代码到我的所有控制器?

1 个答案:

答案 0 :(得分:6)

您应遵循使用问题的命名约定,并在included do块中包含您想要的内容:)

例如

module QueryScopes
  extend ActiveSupport::Concern

   included do
     has_scope :title
   end
end

然后:

class ApiController < ApplicationController
  include QueryScopes
end