访问配置文件时,Ruby Sinatra设置未定义的方法

时间:2016-01-13 15:37:26

标签: ruby sinatra

我正在使用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(类名)

1 个答案:

答案 0 :(得分:0)

验证您的YAML文件是否为“开发”,“测试”,“生产”这三个基本环境设置了svp值:

svp:
  development: app/development-values
  test: app/test-values
  production: app/production-values