在“包括”和“组”查询中的得墨忒耳定律

时间:2015-06-19 00:38:37

标签: ruby-on-rails

如何在此代码中应用demeter定律?

我知道如何通过创建单独的方法,范围来实现....但我不知道如何使用这样的查询来完成它。

  pages = Seo::Page.active
    .path_with(category)
    .includes(seo_area: :suburb)
    .group('suburbs.state')

scope :path_with, -> category { where('path like ?', "/#{category}/%") }

1 个答案:

答案 0 :(得分:0)

您可以创建类方法或新范围来封装Seo::Page类中的逻辑。

def self.grouped(category)
  active
    .path_with(category)
    .includes(seo_area: :suburb)
    .group('suburbs.state')
end

pages = Seo::Page.grouped(category)