2017-05-15 8 views
0

has_oneというアソシエーションをグループ化してカウントしたいと考えています。company_friendという表には、nameという列があります。私はRailsグループカウント複合アソシエーション

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

私が使用しているRailsの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, ... } 
関連する問題