ruby - 获取 Sinatra 请求路由/路径

标签 ruby sinatra

有没有办法可以在 Sinatra 中获取请求路由。例如,我有一条路线:

get "/:id/post" do
  # whatever
end

当我到达该端点时,例如“/abc/post”,我想记录路线:“/:id/post”,而不是“/abc/post”,我可以通过 request.path_info 获取它。

任何帮助将不胜感激。

最佳答案

路由器stores the matched route in @env["sinatra.route"] ,所以你可以这样做:

get '/:id/post' do
  logger.info "Route: #{@env["sinatra.route"]}"
  # ...
end

这将记录:

I, [2016-12-05T10:59:36.678467 #35615]  INFO -- : Route: GET /:id/post

关于ruby - 获取 Sinatra 请求路由/路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40978705/

相关文章:

ruby-on-rails - "sudo gem install rails"不工作

mysql - 带有 sinatra 和 activerecord mysql db 重复错误的 Ruby 没有作为异常引发

ruby-on-rails - 一种在没有 form_for 或 form_tag 的情况下使用 Rails 表单助手的方法

ruby-on-rails - Rails 中跨引擎的 Monkeypatch

ruby 哈希 : can't convert String into Integer TypeError

ruby - Sinatra + DataMapper 的正确日志记录设置

ruby - 如何强制 Rack :session + sinatra to read "rack.session" from params instead of cookies

ruby - 如何过滤 Sinatra 记录器中的密码字段?

ruby-on-rails - 使用日期和时间

javascript - 带有模态窗口的 Sinatra/Padrino partials