есть ли способ остановить выполнение и вернуть другое значение в блоке 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
before do halt 401, {'Content-Type' => 'text/plain'}, 'Message!' end
Вы можете указать только статус, если хотите, вот пример со статусом, заголовками и телом
Вкл. 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