Ich habe so ziemlich das gleiche Szenario wie dieser Beitrag, Rails ActiveRecord sort by count of join table associations, aber ich kann es nicht ganz zur Arbeit bekommen.Zählen und Sortieren auf Join Tabelle in Rails 5
Ich habe eine Tabelle mit dem Namen coffeeshops
, wo eine Tabelle users
Favorit ein Café über eine dritte Tabelle namens favorite_coffeeshops
kann. Ich benutze den acts_as_taggable
Edelstein.
class Coffeeshop < ApplicationRecord
has_many :favorite_coffeeshops# just the 'relationships'
has_many :favorited_by, through: :favorite_coffeeshops, source: :user
class FavoriteCoffeeshop < ApplicationRecord
belongs_to :coffeeshop
belongs_to :user
class User < ApplicationRecord
has_many :coffeeshops
has_many :favorite_coffeeshops # just the 'relationships'
has_many :favorites, through: :favorite_coffeeshops, source: :coffeeshop
In meinem Controller habe ich folgendes:
def index
....
@favshops = Coffeeshop.select
('coffeeshops.*, count(favorite_coffeeshops.coffeeshop_id) as favorite_coffeeshops_count')
.joins(:favorite_coffeeshops.group(:favorite_coffeeshops.coffeeshop_id)
.order('favorite_coffeeshops DESC')
end
Ich bin eigentlich ein Syntaxfehler bekommen, bevor ich kann auch prüfen, ob die Abfrage richtig ist. Geht es darum, die Zeichenfolge über mehrere Zeilen zu wickeln?
SyntaxError (/Users/Simon/gourmet_coffee/app/controllers/home_controller.rb:12: syntax error, unexpected keyword_end, expecting ')'
end
^
/Users/Simon/gourmet_coffee/app/controllers/home_controller.rb:17: syntax error, unexpected end-of-input, expecting keyword_end):