【问题标题】:sinatra 'namespace' not working when trying modular way尝试模块化方式时,sinatra“命名空间”不起作用
【发布时间】:2020-05-05 03:06:17
【问题描述】:

这是我的代码,但“命名空间”没有使用,如果我在没有命名空间的情况下编写它正在工作,如果我删除类声明并直接执行,它也将与“命名空间”一起使用。

require 'sinatra'
require 'sinatra/namespace'

     class MyApp < Sinatra::Base
        namespace "/v1" do
          get "/" do
          "Hello World!"
          end  
        end
      end

1:来自 test1.rb:4:in <main>' test1.rb:5:in':MyApp:Class (NoMethodError) 的未定义方法“命名空间”

【问题讨论】:

  • 在您的班级中,尝试注册:register Sinatra::Namespace

标签: ruby sinatra


【解决方案1】:

基于Sinatra documentation你需要注册扩展:

require 'sinatra'
require 'sinatra/namespace'

class MyApp < Sinatra::Base
    register Sinatra::Namespace

    namespace "/v1" do
        get "/" do
            "Hello World!"
        end  
    end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 2015-11-14
    • 2011-06-26
    • 2013-05-07
    • 2012-09-16
    • 2020-07-14
    • 2020-03-30
    • 2019-01-15
    相关资源
    最近更新 更多