对于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是未知的。
有人知道发生了什么吗?
感谢。
答案 0 :(得分:0)
如果您正在运行Ruby&gt; 1.9.2,require
不查看当前目录。
您应该尝试使用require_relative 'config/database'
或将当前目录添加到加载路径:$LOAD_PATH << '.'
。