在Sinatra 1.1.0版中,我能够在configure
块内使用before
。在版本1.4.5中,这已不再可能。而是抛出错误。
错误:
undefined method 'configure' for #<MySinatraServer:0x3f17a60>
file: web.rb location: block in <class:MySinatraServer> line:6
班级定义:
require 'sinatra'
class MySinatraServer < Sinatra::Base
before do
configure :production do
halt 404, "insecure connection not allowed" if !request.secure?
end
end
get '/' do
"Hello Cruel World"
end
end
使用thin start
运行,config.ru如下所示:
map "/" do
run MySinatraServer
end
为什么configure不再在before block中工作?
答案 0 :(得分:1)
访问configure
块内的before
块需要访问settings
帮助器。代码现在有效。
代码在这里:
before do
settings.configure :production do
halt 404, "insecure connection not allowed" if !request.secure?
end
end
另一个问题是after
块现在在您halt
时运行。啊升级框架版本的乐趣啊!