W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
前置過濾器 (before) 在每個請求前,在請求的上下文環(huán)境中被執(zhí)行,而且可以修改請求和響應(yīng)。在過濾器中設(shè)定的實例變量可以被路由和模板訪問:
before do
@note = 'Hi!'
request.path_info = '/foo/bar/baz'
end
get '/foo/*' do
@note #=> 'Hi!'
params[:splat] #=> 'bar/baz'
end
后置過濾器 (after) 在每個請求之后,在請求的上下文環(huán)境中執(zhí)行,而且可以修改請求和響應(yīng)。在前置過濾器和路由中設(shè)定的實例變量可以被后置過濾器訪問:
after do
puts response.status
end
請注意:除非你顯式使用 body 方法,而不是在路由中直接返回字符串,消息體在后置過濾器是不可用的,因為它在之后才會生成。
過濾器可以可選地帶有范式 (pattern),只有請求路徑滿足該范式 (pattern) 時才會執(zhí)行:
before '/protected/*' do
authenticate!
end
after '/create/:slug' do |slug|
session[:last_slug] = slug
end
和路由一樣,過濾器也可以帶有條件:
before :agent => /Songbird/ do
# ...
end
after '/blog/*', :host_name => 'example.com' do
# ...
end
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: