Работа с QueryObjects и модулями в Rails - PullRequest
0 голосов
/ 17 сентября 2018

Просто начинаю работать с Rails QueryObjects. Я хотел бы сгруппировать их в модули и подмодули, но это не работает.

С помощью простого теста QueryObject он работает:

class CountriesQuery
  def initialize()
  end

  def call()
    Country.where("id=1")
  end
end

В контроллере:

@countries = CountriesQuery.new.call()

Теперь я попробовал это:

module Shared
  module Countries
    class CountriesQuery
      def initialize()
      end

      def call()
        Country.where("id=1")
      end

    end
  end
end

Моя папка имеет структуру запросов> общий доступ> страны> страны_query.rb

Контроллер:

@countries = Shared::Countries::CountriesQuery.new.call()

И ошибка:

undefined method `where' for Shared::Country:Module

Но Country - это модель, ничего общего с модулем ...

Итак, как использовать пространство имен / модули И QueryObjects вместе?

1 Ответ

0 голосов
/ 17 сентября 2018

Полагаю, у вас есть country.rb, который реализует модель с тем же именем.

Если это так, вы хотите правильно ссылаться на константу:

::Country.where("id=1")
...