Сейчас у меня есть простое приложение 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?
Awesome, спасибо за рецензии! Мне пришлось немного поработать с приложением, чтобы заставить его работать, но это были больше мои собственные недостатки, чем ваши объяснения. Спасибо за помощь! –