Как подключить два рельсовых проекта

Я создал два рельсовых приложения sampleи test. Существуют две базы данных. usersТаблица в sampleприложении с полем report_idотносится к reportsтаблице в testприложении.

Я хочу отобразить testданные sampleприложения в приложении, извлекая unique_idполе. Я хочу отображать reportsданные для конкретного пользователя, подключая эти две базы данных.

Как я могу достичь этого самым простым способом?

ruby-on-rails,api,

0

Ответов: 2


0

Вы можете подключиться к двум базам данных из каждого проекта рельсов:

#config/sabple_database.yml
default: &default  
  encoding: utf8
  adapter: mysql2
  port: 5500

development:  
  <<: *default
  database: sample_db
  host:
  username:
  password:


#config/initializers/sample_database.rb
SAMPLE_DB = YAML.load_file(File.join(Rails.root, "config", "sample_database.yml"))[Rails.env.to_s]

#models
class SampleDbBase < ActiveRecord::Base  
  self.abstract_class = true
  establish_connection SAMPLE_DB
end

#models/my_model.rb
class MyModel < SampleDbBase 
end 

Подробнее об этом читайте . Таким образом, вы можете создавать те же модели без миграции (позволяет использовать Reports.find(report_id)).

Кроме того, вы можете написать запрос к некоторой базе данных, используя ActiveRecord::Base.establish_connectionи execute.


0

Благодаря рельсам 6. соединение с несколькими БД будет выполняться по умолчанию из рельсов 6. Пожалуйста, используйте версию рельсов GitHub. и настройте database.yml:

development:
  primary:
  <<: *default
  database: multiple_databases_development
  animals:
  <<: *default
  database: multiple_databases_development_animals
  migrations_paths: "db/animals_migrate"

Для получения более подробной информации ознакомьтесь с https://github.com/eileencodes/multiple_databases_demo

рубин-на-рельсы, апи,
Похожие вопросы