Spec-Zone.ru › Ruby on Rails 6.0

класс ActiveRecord::DatabaseConfigurations

Родитель:
Объект

ActiveRecord::DatabaseConfigurations возвращает массив объектов DatabaseConfig (либо HashConfig, либо UrlConfig), которые созданы из конфигурации базы данных приложения в формате хэша или строки URL.

Атрибуты

configurations[R]

Публичные методы класса

new(configurations = {}) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 17
def initialize(configurations = {})
  @configurations = build_configs(configurations)
end

Публичные методы экземпляра

[](env = ActiveRecord::ConnectionHandling::DEFAULT_ENV.call.to_s)
Псевдоним для: default_hash
blank?()
Псевдоним для: empty?
configs_for(env_name: nil, spec_name: nil, include_replicas: false) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 38
def configs_for(env_name: nil, spec_name: nil, include_replicas: false)
  configs = env_with_configs(env_name)

  unless include_replicas
    configs = configs.select do |db_config|
      !db_config.replica?
    end
  end

  if spec_name
    configs.find do |db_config|
      db_config.spec_name == spec_name
    end
  else
    configs
  end
end

Собирает конфигурации для указанной среды и, необязательно, для указанного имени спецификации. Чтобы включить реплицированные конфигурации, используйте include_replicas: true.

Если имя спецификации указано, будет возвращён один объект DatabaseConfig, в противном случае — массив объектов DatabaseConfig, соответствующих запрошенной среде и типу.

Параметры

  • env_name: Имя среды. По умолчанию nil, что соберет конфигурации для всех сред.

  • spec_name: Имя спецификации (например, primary, animals и т.д.). По умолчанию nil.

  • include_replicas: Определяет, следует ли включать реплики в возвращаемый список. Большинство случаев предполагают итерацию только по конфигурации записи (т.е. миграции не нуждаются в выполнении для подключения записи и чтения). По умолчанию false.

default_hash(env = ActiveRecord::ConnectionHandling::DEFAULT_ENV.call.to_s) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 62
def default_hash(env = ActiveRecord::ConnectionHandling::DEFAULT_ENV.call.to_s)
  default = find_db_config(env)
  default.config if default
end

Возвращает хеш конфигурации, соответствующий заданной среде.

Если приложение имеет несколько баз данных, default_hash вернёт первый хеш конфигурации для заданной среды.

{ database: "my_db", adapter: "mysql2" }
Также является псевдонимом для: []
each() { |env_name, config| ... } Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 96
def each
  throw_getter_deprecation(:each)
  configurations.each { |config|
    yield [config.env_name, config.config]
  }
end
empty?() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 91
def empty?
  configurations.empty?
end

Проверяет, пуста ли конфигурация баз данных приложения.

Псевдоним для blank?

Также является псевдонимом для: blank?
find_db_config(env) Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 72
def find_db_config(env)
  configurations.find do |db_config|
    db_config.env_name == env.to_s ||
      (db_config.for_current_env? && db_config.spec_name == env.to_s)
  end
end

Возвращает единственный объект DatabaseConfig, соответствующий заданной среде.

Если приложение имеет несколько баз данных, find_db_config вернёт первый DatabaseConfig для указанной среды.

first() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 103
def first
  throw_getter_deprecation(:first)
  config = configurations.first
  [config.env_name, config.config]
end
to_h() Показать исходный код
# File activerecord/lib/active_record/database_configurations.rb, line 80
def to_h
  configs = configurations.reverse.inject({}) do |memo, db_config|
    memo.merge(db_config.to_legacy_hash)
  end

  Hash[configs.to_a.reverse]
end

Возвращает объект DatabaseConfigurations в виде хэша.

© 2004–2019 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API