如何从服务访问 Sinatra 自定义设置
How to access Sinatra custom settings from Service
我正在尝试从服务访问我的 Sinatra 应用程序中定义的自定义设置,但我无法执行此操作。
application.rb
require 'sinatra'
require 'sinatra/config_file'
class Application < Sinatra::Base
register Sinatra::ConfigFile
config_file 'environment/config.yml'
set :custom_setting_one, 'some_value'
...
...
end
config.yml
custom_setting_two: some_other_value
my_service.rb
require 'sinatra'
Class MyService
def do_something
Sinatra::Application.settings.custom_setting_one # This throws exception
Sinatra::Application.settings.custom_setting_two # This throws exception
end
end
异常:
undefined method `custom_setting_one' for Sinatra::Application:Class
我无法从服务访问任何一个配置变量,但我可以在 application.rb 文件中访问。
如有任何帮助,我们将不胜感激。
谢谢。
您正在尝试访问 Sinatra::Application
中的设置,但您已经自行定义了它们 Application
class。如果你改变
Sinatra::Application.settings.custom_setting_one
到
Application.settings.custom_setting_one
它应该可以如您所愿地工作。将应用程序的名称 class 更改为 Application
以外的名称可能是值得的,以避免这样的混淆。
最后,由于您使用的是 modular style,您可能应该使用 require 'sinatra/base'
而不是 require 'sinatra'
。
我正在尝试从服务访问我的 Sinatra 应用程序中定义的自定义设置,但我无法执行此操作。
application.rb
require 'sinatra'
require 'sinatra/config_file'
class Application < Sinatra::Base
register Sinatra::ConfigFile
config_file 'environment/config.yml'
set :custom_setting_one, 'some_value'
...
...
end
config.yml
custom_setting_two: some_other_value
my_service.rb
require 'sinatra'
Class MyService
def do_something
Sinatra::Application.settings.custom_setting_one # This throws exception
Sinatra::Application.settings.custom_setting_two # This throws exception
end
end
异常:
undefined method `custom_setting_one' for Sinatra::Application:Class
我无法从服务访问任何一个配置变量,但我可以在 application.rb 文件中访问。
如有任何帮助,我们将不胜感激。
谢谢。
您正在尝试访问 Sinatra::Application
中的设置,但您已经自行定义了它们 Application
class。如果你改变
Sinatra::Application.settings.custom_setting_one
到
Application.settings.custom_setting_one
它应该可以如您所愿地工作。将应用程序的名称 class 更改为 Application
以外的名称可能是值得的,以避免这样的混淆。
最后,由于您使用的是 modular style,您可能应该使用 require 'sinatra/base'
而不是 require 'sinatra'
。