带有ActiveStorage的多个数据库

时间:2018-12-09 02:16:59

标签: ruby-on-rails ruby

我正在创建具有多个数据库的RoR应用程序。 例如,我有两个数据库:

  • 仪表板(其中包含所有用户条目,组表,承载表,伴侣表)
  • 商店(存放所有产品,目录...)

我通过创建两个database.yml文件并在模型中调用方法build_connection来将模型存储在单独的数据库中。 不幸的是,ActiveStorage不依赖于Models DB。

我看到ActiveStorage有自己的模型“ Blob和附件”,它们扩展了ActiveRecord :: Base。 要存储ActiveStorage条目,请运行model.rb文件中的has_one_attached()方法:

https://github.com/rails/rails/blob/master/activestorage/lib/active_storage/attached/model.rb

如何在ActiveStorage Engine中操纵此方法,而不是调用ActiveStores Blob,而是调用我自己的StoreBlob模型,该模型随后包含“ Establishment_connection STORE_DB”?

1 个答案:

答案 0 :(得分:0)

使用您的连接在您的应用程序中创建模型ActiveStorage :: Blob和ActiveStorage :: Attachment,在我的情况下是postgres。

class ActiveStorage::Attachment < PostgresModelBase

我在其他类PostgresModelBase中定义了连接

之后,您需要将模型中的所有内容从activestorage gem复制到新模型中。

希望能成功!