Использование STI с has_many заставляет активную запись искать таблицу подклассов - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть пользовательская модель и 3 подкласса, использующие наследование одной таблицы. Владелец, Клиент и Администратор. (Столбец типа был добавлен в пользовательскую таблицу).

#user.rb
class User < ApplicationRecord
    devise :database_authenticatable,:registerable,
         :jwt_authenticatable,
         jwt_revocation_strategy: JWTBlacklist

end

#client.rb
class Client < User
end

#admin.rb
class Admin < User
end

#owner.rb
class Owner < User
  has_many :clubs
end

#club.rb
class Club < ApplicationRecord
  belongs_to :owner
  has_one :address
  has_many :courts
end

Модель Владелец имеет отношение has_many к модели Club. Когда я захожу в приложение как владелец, а затем пытаюсь добавить новый клуб. Использование

@club= current_user.clubs.create!(club_params)

Я получаю следующую ошибку.

ActiveRecord :: StatementInvalid (SQLite3 :: SQLException: такой таблицы нет: main.owners: INSERT INTO "clubs" ("owner_id", "creation_at", "updated_at") ЗНАЧЕНИЯ (?,?,?)):

Есть ли способ заставить его искать в таблице пользователей?

1 Ответ

0 голосов
/ 07 ноября 2018

нашел ответ здесь Rails STI и has_many через ассоциацию не работают, SQLException: нет такой таблицы

Я должен был использовать

spring stop

и сбросьте базу данных с помощью

rails db:reset
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...