вернуть другое значение из блока before do в sinatra - PullRequest
5 голосов
/ 06 октября 2010

есть ли способ остановить выполнение и вернуть другое значение в блоке before do в sinatra?

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

Ответы [ 2 ]

9 голосов
/ 18 июня 2011
before do
  halt 401, {'Content-Type' => 'text/plain'}, 'Message!'
end

Вы можете указать только статус, если хотите, вот пример со статусом, заголовками и телом

2 голосов
/ 06 октября 2010

Вкл. 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...