У меня есть модель Place, у которой есть отзывы, в которых есть столбцы звездочек.
Я попробовал следующий запрос:
Place.select('place_id, name, avg(reviews.stars)').join(:reviews).group('place_id, name').order('avg(reviews.stars) desc')
Я получил следующую ошибку:
PG::UndefinedColumn: ERROR: column "place_id" does not exist LINE 1: SELECT place_id, name, avg(reviews.stars) FROM "places" ^ : SELECT place_id, name, avg(reviews.stars) FROM "places"
Как он может пожаловаться на place_id?Этот столбец создан Rails.Как я могу решить эту проблему?
Мои модели:
class Review < ApplicationRecord
belongs_to :place
end
и
class Place < ApplicationRecord
has_many :reviews
end
Схема выглядит следующим образом:
create_table "reviews", force: :cascade do |t|
t.integer "stars"
t.string "content"
t.bigint "place_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["place_id"], name: "index_reviews_on_place_id"
end
и
create_table "places", force: :cascade do |t|
t.bigint "user_id"
t.string "name"
t.string "description"
t.float "lng"
t.float "lat"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "latitude"
t.float "longitude"
t.string "address"
t.index ["user_id"], name: "index_places_on_user_id"
end