如何在不使用全局变量的情况下在sinatra中的任何地方建立数据库连接?

时间:2013-07-25 07:56:22

标签: ruby database sinatra global-variables

目前我有类似的东西:

$db = Db::Connection.new()

然后我就这样使用它:

get '/foo' do
 response.body = $db.fetch(params["bar"]) || ""
end

我在这里告诉我,这不是最佳选择。

为什么以及我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

在我的configure do块中,我会把它放在这样的设置中:

set :db, Db::Connection.new()

然后当你需要它时,得到它:

settings.db.fetch(params["bar"])

如果您需要重新使用它,请将其分配给局部变量等。