получить результат в таблице соединений в ruby - PullRequest
1 голос
/ 09 октября 2019

Я совсем новичок в рубине. я хочу получить результат из таблицы соединений, но результат, в котором я получаю саму таблицу

Table A
id | user_id | cat_id
1      1        2
2      2        3
3      1        1
4      1        3
5      3        4

class A < ApplicationRecord
  belongs_to :cat, optional: true
end
Table cat
id | name
1      ai 
2      bi 
3      ci 
4      di
5      ei

class Cat < ApplicationRecord
  has_many :a
end

я хочу показать всех cat, которые связаны с определенным user_id в таблице A

A.where (user_id: 1) .joins (: cat)

, но результат, который я получаю,

[{
   id: 1,
   user_id: 1,
   cat_id: 2
},{
   id: 3,
   user_id: 1,
   cat_id: 1
},{
   id: 4,
   user_id: 1,
   cat_id: 3
}]

ожидаемый результат: массив продуктов на основе таблицы A с идентификатором пользователя 1

[{
   id: 2,
   name: bi
},{
   id: 1,
   name: ai
},{
   id: 3,
   name: ci
}]

1 Ответ

1 голос
/ 09 октября 2019

Если вам нужен cat, вы должны начать оттуда:

Cat.joins(:<plural_version_of_table_a>).where(<plural_version_of_table_a>: { user_id: 1 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...