2017-05-15 7 views
0

has_one이라는 연관을 통해 그룹화하고 계산하려는 company_friend이라는 테이블에 name이라는 열이 있습니다. 난레일 그룹 카운트 복잡한 연결

{"nestle" => 10, "cocacola" => 20, "los pollos hermanos" => 50} 

:

내가 사용하고 레일 5.

class Appointment 
    belongs_to :company_friendship, touch: true 
    has_one :company_friend, through: :company_friendship 
end 

class CompanyFriendship < ApplicationRecord 
    belongs_to :company, touch: true 
    belongs_to :company_friend, touch: true, class_name: "Company" 
end 

class Company < ApplicationRecord 
    has_many :company_friendships, autosave: true 
    has_many :company_friends, through: :company_friendships, autosave: true 
end 

내가 예상 출력은 다음과 같이되어야 company_fiend.name

를 사용하여 그룹화 할 하고 :

Appointment.joins(:company_friend).group("company_friends.name").count 

는하지만 얻을 :

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "company_friends" 
LINE 1: SELECT COUNT(*) AS count_all, company_friends.name AS compan... 
+0

당신이 당신의'CompanyFriendship'와'CompanyFriend' 모델을 보여줄 수 있습니까? – Gerry

+0

완료, 나머지 모델 @Gerry 추가 – user1262904

답변

1

이 내가 필요한 것입니다 :

Appointment.joins(:company_friend).group("companies.name").count 

{"Barton Mines"=>772, ... }