只需开始使用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
我的文件夹结构是查询>共享>国家> country_query.rb
控制器:
@countries = Shared::Countries::CountriesQuery.new.call()
错误是:
undefined method `where' for Shared::Country:Module
但是Country
是模型,与模块无关...
那么,如何一起使用命名空间/模块和QueryObject?
答案 0 :(得分:1)
我想您有country.rb
,它实现了相同名称的模型。
如果是,则要正确引用该常数:
::Country.where("id=1")