以下是我在主数据库中的关联模型中添加数据时遇到的错误。
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: 错误:在表“配置”上插入或更新违反了外键约束“fk_rails_29e23e6ceb”详细信息:表“公司”中不存在键 (company_id)=(129)。
以下是我在主数据库中的关联模型中添加数据时遇到的错误。
ActiveRecord::InvalidForeignKey: PG::ForeignKeyViolation: 错误:在表“配置”上插入或更新违反了外键约束“fk_rails_29e23e6ceb”详细信息:表“公司”中不存在键 (company_id)=(129)。
我遇到了同样的问题,并花了很多时间试图找出造成这种情况的原因。解决方案非常简单(至少在我的情况下)。直接来自 gem 的文档:
如果您有一些模型应该始终访问“公共”租户,您可以通过使用 Apartment.configure 配置 Apartment 来指定这一点。这将为您生成一个配置对象。您可以> 像这样设置排除模型:
config.excluded_models = ["User", "Company"] # these models will not be multi-tenanted, but remain in the global (public) namespace ```
所以只需将它添加到你的 apartment.rb 文件中。
Apartment.configure do |config|
config.excluded_models = %w{ User Company }
...
end