Sinatra设置在班级范围内失去



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 << '.'

最新更新