有没有办法停止执行并在sinatra中的before do块中返回一个不同的值?
before do
# code is here
# I would like to 'return "Message"'
# I would like "/home" to not get called.
end
// rest of the code
get '/home' do
end
答案 0 :(得分:9)
before do
halt 401, {'Content-Type' => 'text/plain'}, 'Message!'
end
如果需要,您可以仅指定状态,此处为状态,标题和正文的示例
答案 1 :(得分:2)
在http://www.sinatrarb.com/intro过滤器部分
之前评估过滤器之前 每个请求都在上下文中 请求并可以修改请求和 响应。设置实例变量 过滤器可通过路线访问 模板:
before do
@note = 'Hi!'
request.path_info = '/foo/bar/baz'
end
get '/foo/*' do
@note #=> 'Hi!'
params[:splat] #=> 'bar/baz'
end