我有一个需要使用数据库的sinatra应用程序,并且在我的应用程序中我有一个班级'管理员'处理所有数据库事物。我需要' Admin'如果我在本地运行,则建立与本地数据库文件的连接,但在联机运行时连接到Heroku postgres数据库。我已经按照here的说明操作了,但是虽然它已经让我走得很远,但我不知道如何将我的数据库连接添加到我的班级。我认为这是一个非常简单的问题,我不知道答案。这是我的类处理应用程序的数据库连接
require 'sequel'
require 'pg'
#This class will handle making the database
class Admin
#A getter/setter for DB
attr_accessor :DB
#Our constructor that makes the database and tables we need
def initialize
configure :development do
set :@DB, "sqlite://database.db"
end
configure :production do
@DB = URI.parse(ENV['DATABASE_URL'] || 'postgres://localhost/mydb')
ActiveRecord::Base.establish_connection(
:adapter => @DB.scheme == 'postgres' ? 'postgresql' : @DB.scheme,
:host => @DB.host,
:username => @DB.user,
:password => @DB.password,
:database => @DB.path[1..-1],
:encoding => 'utf8'
)
end
#@DB = Sequel.connect('sqlite://database.db')# || ENV['DATABASE_URL'])
end
#.....
end
我只需要Admin.DB来保存对数据库的本地或在线引用(如果我理解正确的话)