Modell:Rails Active Kombination Ergebnis mehrerer Abfragen
player
belongs_to :current_club
belongs_to :parent_club
has_many :ratings
rating
belongs_to :player
Grund Schema:
create_table "clubs", force: :cascade do |t|
t.integer "league_id"
t.string "club_name"
end
create_table "players", force: :cascade do |t|
t.integer "player_id"
t.string "player_name"
t.integer "current_club_id"
t.integer "parent_club_id"
end
create_table "ratings", force: :cascade do |t|
t.integer "player_id"
t.integer "rating"
t.date "date"
end
Ich mag die neueste Bewertung für jeden Spieler bekommen, die nicht an einem bestimmten current_club funktioniert und Listen Sie die Spieler in absteigender Reihenfolge der aktuellen Bewertung auf.
Für die aktuelle Bewertung von Informationen aller Spieler bekommen und die Auflistung in absteigender Reihenfolge, die folgenden Werke:
@ratings = Rating.select([:player_id, :rating, :date, 'MAX(date)']).order('rating desc').group(:player_id)
Und für die Informationen aller Spieler bekommen, die nicht an einem bestimmten current_club ist, die folgenden Werke:
@players = Player.paginate(page: params[:page], per_page: 50).includes(:current_club).where.not(current_club_id: 101121)
ich kann einfach nicht herausfinden, wie die beiden so zu kombinieren, dass es Ordnung und die Spieler Informationen für alle Spieler in absteigender Reihenfolge die neueste Bewertung für alle Spieler bekommt die current_club nicht sind 101121. Danke voraus.
, die nicht funktionieren. Spieler haben mehrere Bewertungen, die entweder steigen oder fallen können. Ich möchte die neueste Bewertung erhalten und diese in absteigender Reihenfolge sortieren. Mit dem, was Sie vorgeschlagen haben, wird es mehrere Bewertungen von jedem Spieler statt der neuesten haben. – Damien