Вы можете добавить другую базу данных в первую конфигурацию (при необходимости отрегулируйте, я просто скопировал вашу конфигурацию из второй):
...
other:
adapter: mysql2
encoding: utf8mb4
collation: utf8mb4_bin
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
variables:
sql_mode: TRADITIONAL
database: <%= ENV['RDS_DB_NAME'] %>
username: <%= ENV['RDS_USERNAME'] %>
password: <%= ENV['RDS_PASSWORD'] %>
host: <%= ENV['RDS_HOSTNAME'] %>
port: <%= ENV['RDS_PORT'] %>
Затем вы можете создать подпапку в вашем каталоге app/models
, чтобы дать вы ActiveRecord
доступ к другой базе данных. Сначала создайте базовый класс:
# app/models/other/base.rb
module Other
class Base < ActiveRecord::Base
establish_connection configurations['other']
self.abstract_class = true
end
end
Затем добавьте модель пользователя в этот модуль:
# app/models/other/user.rb
module Other
class User < Base
self.table_name = 'users'
self.primary_key = 'id'
end
end
Теперь вы можете ссылаться на «другую» таблицу пользователей следующим образом:
Other::User.find(other_user_id)
Также имейте в виду, что вам потребуется установить адаптер базы данных mysql2
в Gemfile вашего первого проекта.
Также обратите внимание, что вам, вероятно, понадобится лучшее имя / модуль, чем «Другое» ", Я просто использовал это в качестве примера.