Настройки Синатры потеряны в области видимости
Для приложения Sinatra config.ru вызывает "run" в следующем классе:
class My_init < Sinatra::Base
# Define all environments available in our app
# Set the applications root directory
# Define Root Path
# Require all files in the App directory
# Load database configuration
require './config/database'
ActiveRecord::Base.establish_connection(
:adapter => "mysql2",
:host => settings.db_host,
:database => settings.db_name,
:username => settings.db_username,
:password => settings.db_password
)
end
По какой-то причине настройки, загруженные из./config/database, недоступны из этой области. Если я печатаю настройки из самого файла конфигурации, например, "p settings.db_host", то все в порядке, однако внутри этого класса settings.db_host неизвестен.
Кто-то знает, что происходит?
Благодарю.
1 ответ
Если вы используете Ruby > 1.9.2, require
не смотрит на текущий каталог.
Вы должны попробовать использовать require_relative 'config/database'
или добавьте текущий каталог в путь загрузки: $LOAD_PATH << '.'
,