sinatra应用程序config.ru在以下类中调用"运行":
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是未知的。
有人知道发生了什么吗?
谢谢。
如果您正在运行Ruby> 1.9.2,则require
不会查看当前目录。
您应该尝试使用require_relative 'config/database'
或将当前目录添加到负载路径:$LOAD_PATH << '.'
。