Как присоединиться к родительской таблице при использовании STI - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть эти модели:

class Product < ApplicationRecord
  has_many :units
end

class Unit < Product
  belongs_to :product
end

В вышеприведенных моделях используется только одна таблица, которая называется 'products' таблица.

create_table :products do |t|
  t.string  :code
  t.integer :product_id
  t.string  :type
  t.string  :status
  ...
end

Что я хочу, чтобы получить все units, где products.status равно active.

Я пытался Unit.joins(:product).where(products: { status: 'active' }), но не повезло

Вот текущие данные, которые у меня есть

| id |  type   | product_id | status  |
|----|:-------:|-----------:|---------|
| 1  | Product |       null | deleted |
| 2  | Product |       null | active  |
| 3  |  Unit   |          1 | active  |
| 4  |  Unit   |          1 | active  |
| 5  |  Unit   |          2 | active  |

Все, что я хочу получить, это

| id |  type   | product_id | status  |
|----|:-------:|-----------:|---------|
| 5  |  Unit   |          2 | active  |
...