未定义的方法“命名空间”
undefined method `namespace'
我正在尝试为 Sinatra 应用实现命名空间(使用 sinatra-contrib gem)路由,但在我尝试启动服务器后出现错误:
undefined method `namespace' for GuessApp:Class
app.rb
require 'sinatra'
require 'sinatra/namespace'
require 'haml'
require_relative 'routes/init'
require_relative 'models/init'
require_relative 'helpers/init'
class GuessApp < Sinatra::Base
register Sinatra::Namespace
end
routes/init.rb
require_relative "books"
require_relative "stars"
routes/books.rb
class GuessApp < Sinatra::Base
namespace '/books' do
@title = "Books"
get '' do
@books = Book.all
haml :books, layout: :layout
end
end
end
没有命名空间,这条路由工作正常。
你 require 'sinatra/namespace'
在你需要 books.rb
之前,但你只 register Sinatra::Namespace
在 GuessApp
应用程序 之后 你需要它.单独要求仅使其在经典风格的应用程序中可用。
在尝试使用 namespace
之前,您需要确保 Sinatra::Namespace
已在 GuessApp
中注册,例如 app.rb
:
require 'sinatra'
require 'sinatra/namespace'
require 'haml'
class GuessApp < Sinatra::Base
register Sinatra::Namespace
end
require_relative 'routes/init'
require_relative 'models/init'
require_relative 'helpers/init'
我正在尝试为 Sinatra 应用实现命名空间(使用 sinatra-contrib gem)路由,但在我尝试启动服务器后出现错误:
undefined method `namespace' for GuessApp:Class
app.rb
require 'sinatra'
require 'sinatra/namespace'
require 'haml'
require_relative 'routes/init'
require_relative 'models/init'
require_relative 'helpers/init'
class GuessApp < Sinatra::Base
register Sinatra::Namespace
end
routes/init.rb
require_relative "books"
require_relative "stars"
routes/books.rb
class GuessApp < Sinatra::Base
namespace '/books' do
@title = "Books"
get '' do
@books = Book.all
haml :books, layout: :layout
end
end
end
没有命名空间,这条路由工作正常。
你 require 'sinatra/namespace'
在你需要 books.rb
之前,但你只 register Sinatra::Namespace
在 GuessApp
应用程序 之后 你需要它.单独要求仅使其在经典风格的应用程序中可用。
在尝试使用 namespace
之前,您需要确保 Sinatra::Namespace
已在 GuessApp
中注册,例如 app.rb
:
require 'sinatra'
require 'sinatra/namespace'
require 'haml'
class GuessApp < Sinatra::Base
register Sinatra::Namespace
end
require_relative 'routes/init'
require_relative 'models/init'
require_relative 'helpers/init'