将STI与has_many一起使用会导致活动记录搜索子类表

时间:2018-11-07 03:03:23

标签: ruby-on-rails

我有一个使用单表继承的用户模型和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= current_user.clubs.create!(club_params)

我收到以下错误。

  

ActiveRecord :: StatementInvalid(SQLite3 :: SQLException:没有这样的表:main.owners:INSERT INTO“ clubs”(“ owner_id”,“ created_at”,“ updated_at”)值(?,?,?)):< / p>

是否可以通过某种方式搜索用户表?

1 个答案:

答案 0 :(得分:0)

Rails STI and has_many through association not working, SQLException: no such table

找到答案

我不得不使用

spring stop

并使用

重置数据库
rails db:reset