通过关系获得has_many的受欢迎程度

时间:2017-04-02 02:56:17

标签: ruby-on-rails postgresql activerecord

我有以下型号&关系

$newDest = 'D:\test'                       ### change to fit your circumstances
Get-ChildItem -File | ForEach-Object {
    $oldFile = $_.FullName
    $newName = $_.BaseName.Split('-')[0] + $_.Extension
    $newFile = Join-Path -Path $newDest -ChildPath $newName
    if ( -not ( Test-Path -Path $newFile ) ) {
        Move-Item -Path $oldFile -Destination $newFile -WhatIf
    }
}

我正在尝试根据糖果本身推出最受欢迎的类别名称。

我可以按类别名称进行分组,并获得一个计数,但是(显然)不会留下类别对象,只是一个带有名称和计数的数组。

e.g。

Category
  has_many :candy
  # these are examples
  #"Hard Candy" "Gummies" "Rock Candy" "Gum" "Jawbreakers" "Lollipops" "Licorice" "Liquid Candy" "Powder Candy" "Taffy"

CandyCategory
  belongs_to :candy
  belongs_to :category

Candy
  has_many :candy_categories
  # Examples "Lemon Drop", "Tootsie Rolls", "Blow Pop", "Ring Pop", "Fun Dip"

Likes
  belongs_to :user
  belongs_to :candy
  has_many :categories, through: :candy
  # there is some meta data here, but the important bits are just the relationships

今天有人可能会对我有所了解,并向我展示我的ActiveRecordee方式的错误!?!在一天结束时,我需要一个Category对象列表,或者至少是类别名称和id。

1 个答案:

答案 0 :(得分:0)

EUREKA !!!!

所以,显然我对此感到很兴奋,这并不困难,我只是反过来考虑它。

以下是解决方案:

Category.joins(:candy).includes(:likes).group(:categories).count