Sinatra 请求/实例 变量域

2023-12-20 15:44 更新

对于每个进入的请求,一个新的应用类的实例会被创建 所有的处理器代码块在该变量域被运行。在这个变量域中,你可以访问 ​request​ 和 ​session​ 对象,或者调用渲染方法比如​ erb ​或者​ haml​。你可以在请求变量域当中通过​settings​辅助方法 访问应用变量域:

class MyApp < Sinatra::Base
  # 嘿,我在应用变量域!
  get '/define_route/:name' do
    # 针对 '/define_route/:name' 的请求变量域
    @value = 42

    settings.get("/#{params[:name]}") do
      # 针对 "/#{params[:name]}" 的请求变量域
      @value # => nil (并不是相同的请求)
    end

    "Route defined!"
  end
end

在以下情况将获得请求变量域:

  • get/head/post/put/delete 代码块
  • 前置/后置 过滤器
  • 辅助方法
  • 模板/视图


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

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号