У меня есть объект с именем " Факт ", этот объект связан с другим объектом с именем " Пользователь ", это отношение называется " Обратная связь ", что имеет 3 поля [user_id, fact_id, Score] каждый раз, когда человек дает отзыв, который он получал ( user_id ) на какой факт был сделан ( fact_id ) и что было квалифицировано ( 0,1,2 ).
Что ж, теперь я хочу получить список фактов с их квалификацией, например:
fact : {id: 3, name: "some name", number_of_zero: 7, number_of_one: 3, number_of_two: 3}
где number_of - количество раз, которое оно было квалифицировано.
Схема базы данных:
create_table "facts", force: :cascade do |t|
t.string "title"
t.string "description"
t.integer "user_id"
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "last_name"
end
create_table "feedbacks", force: :cascade do |t|
t.integer "score"
t.integer "user_id"
t.integer "fact_id"
t.index ["fact_id"], name: "index_feedbacks_on_fact_id"
t.index ["user_id"], name: "index_feedbacks_on_user_id"
end
Отношения:
class Feedback < ApplicationRecord
belongs_to :user
belongs_to :fact
end