Подтвердить что ты не робот

Как сделать внешние вызовы базы данных?

Итак, я хотел бы добавить внешнюю базу данных в мой config/database.yml Затем смоделировать одну таблицу из нее.

Возможно ли это? Я не смог понять, как это сделать.

"Подключение к нескольким базам данных в разных моделях

Связи обычно создаются с помощью ActiveRecord::Base.establish_connection и извлекаются ActiveRecord::Base.connection. Все классы, наследующие от ActiveRecord::Base, будут использовать это соединение. Но вы также можете установить соединение, специфичное для класса. Например, если Course является ActiveRecord::Base, но находится в другой базе данных, вы можете просто сказать Course.establish_connection и Course, и все его подклассы будут использовать это соединение.

Эта функция реализуется путем сохранения пула соединений в ActiveRecord::Base, который является индексом Hash, присвоенным классом. Если запрашивается соединение, метод retrieve_connection будет подниматься по иерархии классов до тех пор, пока соединение не будет найдено в пуле соединений. "

4b9b3361

Ответ 1

Сначала определите информацию о соединении в database.yml:

my_external_db:
  adapter: mysql
  username: ...
  ....

Затем создайте модель и подключите ее к внешнему db

class MyExternalModel < ActiveRecord::Base
  establish_connection(:my_external_db)
  set_table_name 'my_external_table'
end

Ответ 2

set_table_name удаляется, поэтому вместо этого вы должны использовать: self.table_name