2

これが私の懸念ファイルです: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」コードを適用するにはどうすればよいですか?

4

1 に答える 1

7

懸念を使用するための命名規則に従い、必要なものをincluded doブロックに含める必要があります:)

例えば。

module QueryScopes
  extend ActiveSupport::Concern

   included do
     has_scope :title
   end
end

その後:

class ApiController < ApplicationController
  include QueryScopes
end
于 2014-08-02T03:46:56.573 に答える