从sinatra中的do块返回不同的值

Pra*_*man 5 ruby sinatra

有没有办法停止执行并在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
Run Code Online (Sandbox Code Playgroud)

Bur*_*jaM 9

before do
  halt 401, {'Content-Type' => 'text/plain'}, 'Message!'
end
Run Code Online (Sandbox Code Playgroud)

如果需要,您可以仅指定状态,这里是状态,标题和正文的示例


Sht*_*lic 2

http://www.sinatrarb.com/intro过滤器部分

Before 过滤器在请求上下文中的每个请求之前进行评估,并且可以修改请求和响应。过滤器中设置的实例变量可以通过路由和模板访问:

  before do
    @note = 'Hi!'
    request.path_info = '/foo/bar/baz'
  end

  get '/foo/*' do
    @note #=> 'Hi!'
    params[:splat] #=> 'bar/baz'
  end
Run Code Online (Sandbox Code Playgroud)