Sinatra 应用/类 变量域

2023-12-20 15:44 更新

每个 Sinatra 应用相当与 Sinatra::Base 的一个子类。如果你在使用顶层 DSL(require 'sinatra'),那么这个类就是 Sinatra::Application,或者这个类就是你显式创建的子类。在类层面,你具有的方法类似于 ​get​ 或者 ​before​,但是你不能访问 ​request​ 对象或者 ​session​, 因为对于所有的请求,只有单一的应用类。

通过​ set​ 创建的选项是类层面的方法:

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

  get '/foo' do
    # 嘿,我不再处于应用变量域了!
  end
end

在下列情况下你将拥有应用变量域的绑定:

  • 在应用类中
  • 在扩展中定义的方法
  • 传递给 ​helpers​ 的代码块
  • 用作​set​值的过程/代码块

你可以访问变量域对象(就是应用类)就像这样:

  • 通过传递给代码块的对象 (configure { |c| ... })
  • 在请求变量域中使用​settings


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号