Sinatra 應用/類 變量域

2023-12-20 15:44 更新

每個 Sinatra 應用相當與 Sinatra::Base 的一個子類。如果你在使用頂層 DSL(require 'sinatra'),那么這個類就是 Sinatra::Application,或者這個類就是你顯式創(chuàng)建的子類。在類層面,你具有的方法類似于 ?get? 或者 ?before?,但是你不能訪問 ?request? 對象或者 ?session?, 因為對于所有的請求,只有單一的應用類。

通過? set? 創(chuàng)建的選項是類層面的方法:

class MyApp < Sinatra::Base
  # 嘿,我在應用變量域!
  set :foo, 42
  foo # => 42

  get '/foo' do
    # 嘿,我不再處于應用變量域了!
  end
end

在下列情況下你將擁有應用變量域的綁定:

  • 在應用類中
  • 在擴展中定義的方法
  • 傳遞給 ?helpers? 的代碼塊
  • 用作?set?值的過程/代碼塊

你可以訪問變量域對象(就是應用類)就像這樣:

  • 通過傳遞給代碼塊的對象 (configure { |c| ... })
  • 在請求變量域中使用?settings?


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號