Как я могу динамично изменить базу данных Active Record для всех моделей в Ruby on Rails?

Концептуально, я думаю, вы хотите, чтобы каждый ответ был аккуратно одной строкой. Итак, почему бы вам не попробовать это?

cout << "Enter the number: ";
string line;
getline(cin, line);
int number = std::stoi(line);

cout << "Enter names: ";
string names;
getline(cin, names);

Код правильно использует первый символ новой строки, дает номер, если строка верна или выбрасывает исключение, если это не так. Все бесплатно!

28
задан Tilendor 10 October 2008 в 00:14
поделиться

2 ответа

Можно также сделать это легко без жесткого кодирования что-либо и выполнить миграции автоматически:

customer = CustomerModel.find(id)
spec = CustomerModel.configurations[RAILS_ENV]
new_spec = spec.clone
new_spec["database"] = customer.database_name
ActiveRecord::Base.establish_connection(new_spec)
ActiveRecord::Migrator.migrate("db/migrate_data/", nil)

я нахожу полезным восстановить старое соединение на конкретной модели впоследствии:

CustomerModel.establish_connection(new_spec)
39
ответ дан Vanuan 14 October 2019 в 10:21
поделиться

можно изменить соединение с ActiveRecord в любое время путем вызова ActiveRecord:: основа establish_connection (...)

IE:

 ActiveRecord::Base.establish_connection({:adapter => "mysql", :database => new_name, :host => "olddev",
    :username => "root", :password => "password" })
15
ответ дан Tilendor 14 October 2019 в 10:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: