現在我已經有了一個簡單的連接到數據庫的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