现在我已经有了一个简单的连接到数据库的Sinatra应用程序。从需求获取数据库配置
现在我有连接字符串硬编码回购本身内。我的目标是从不同的文件中返回连接信息(最终会在回购站之外)。
这是我到目前为止已经试过:
app.rb
class MySinatraApp < Sinatra::Application
configure do
conf = require_relative 'configuration'
# set public dirs, sessions, etc.
set :mongourl, conf[:mongourl]
set :mongodb, conf[:mongodb]
end
end
...终于在configuration.rb
env = ENV['RACK_ENV'].to_sym
case env
when :production
return {
"mongourl" => 'mongodb://localhost/prod',
"mongodb" => 'prod'
}
when :development
return {
"mongourl" => 'mongodb://localhost/dev',
"mongodb" => 'prod'
}
else
return {
"mongourl" => 'mongodb://localhost/test',
"mongodb" => 'test'
}
end
的想法是只返回任何哈希我需要使用,但是当我尝试上述时,它会出现这些错误:
<my_project_dir>/configuration.rb: <my_project_dir>/configuration.rb:9: Invalid return (SyntaxError)
<my_project_dir>/configuration.rb:16: Invalid return
<my_project_dir>/configuration.rb:21: Invalid return
从错误中,您无法返回我现在正在执行的操作。我假设这是因为它不在某种函数调用中?人们通常如何在Ruby/Sinatra中包含配置文件?
真棒,谢谢你写了!我确实不得不随身带着这个应用程序来让它工作,但那是我自己的错误,而不是你的解释。谢谢您的帮助! – 2014-10-20 21:24:19