【问题标题】:Rails 4 has_and_belongs_to_many with multi-tenancy (apartment)Rails 4 has_and_belongs_to_many 多租户(公寓)
【发布时间】:2014-03-20 01:15:46
【问题描述】:

在我的应用程序中,我使用公寓来进行多租户和 postgresql,因此每个租户都处于不同的架构中。
我在公共(模式)中有一个用户模型,在每个租户(模式)中有一个模型操作。
我想在这两个模型之间建立关系 has_and_belongs_to_many。
如果我禁用多租户,它工作正常。

我在公寓的网站上读到 habtm 不起作用,因为没有要排除的模型,但这不是我的情况。我不想排除它。关系表租户模式中,具有模型 Action。只有用户被声明被排除在外(所以用户是公开的)。

我有一条错误消息说 PG::InvalidSchemaName: ERROR: schma « actions_public » 不存在。

我该怎么办?

感谢您的帮助。

【问题讨论】:

  • 首先:您是否按照所有步骤在apartment.rb 中设置apartment?比如定义excluded_modelspersistent_schemas?你用的是Postgresql,你设置config.use_schemas = true了吗?
  • 感谢您的回复。是的,在 initializers/apartments.rb 中,我输入了config.excluded_models = %w{User} 以排除我的用户模型和“config.use_schemas = true”,但我不使用 config.persistent_schemas。
  • 很乐意提供帮助 - 但我仍然倾向于多租户 :) 希望它对你有用
  • 谢谢 :-) 但现在还是不行...祝你好运 ;-)

标签: ruby-on-rails has-and-belongs-to-many multi-tenant


【解决方案1】:

我回答我的问题。

由于Apartment的设计,当一个模型被排除在另一个模型上时,不可能使用habtm关系。
解决方案是使用has_many :through 关系。
谢谢。

【讨论】:

  • 不要在评论中提问,但您似乎正在使用设计,而我的情况完全相同。你能把 devise 转换成 has_many :through 吗?
  • 我没有在这个应用程序中使用 Devise(我在其他应用程序中使用它...)对不起,我帮不了你。
猜你喜欢
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多