我正在使用sinatra / sinatra-settings开发一个ruby网站,我在尝试从config.yml
访问变量时遇到以下错误。
我的主要应用是:
require 'sinatra'
require 'sinatra/reloader'
require 'sinatra/config_file'
require_relative 'web_data'
class Main < Sinatra::Base
register Sinatra::ConfigFile
config_file 'config.yml'
puts settings.inspect
c = Marshal.load(File.read(settings.svp)) rescue WebData.new(0)
get '/a/:name' do
c.increment
File.open(settings.svp, 'w') {|f| f.write(Marshal.dump(c)) }
"Hello, #{params[:name] ? params[:name] : 'world'}!"+c.getcount.to_s
end
end
我的config.yaml
是:
svp: app/systemvalues
引发的错误是:
2016-01-13 15:35:17 - NoMethodError - undefined method `svp' for Main:Class:
/home/miguel/workspace/personal_website/app/app.rb:16:in `block in <class:Main>'
我尝试添加注册表Sinatra :: ConfigFile,但无济于事。
哦,并将settings.inspect打印出Main
(类名)
答案 0 :(得分:0)
验证您的YAML文件是否为“开发”,“测试”,“生产”这三个基本环境设置了svp
值:
svp:
development: app/development-values
test: app/test-values
production: app/production-values