我需要对博客进行简单的身份验证。对于一个人。只需登录网站
即可无法配置sinatra_warden。写下行
require 'rubygems'
require 'sinatra'
require 'pry-byebug'
require "sinatra/activerecord"
require "carrierwave"
require "carrierwave/orm/activerecord"
require 'sinatra_warden'
require 'warden'
register Sinatra::Warden
use Rack::Session::Pool
在 app.rb 中,但我收到错误
NoMethodError: undefined method `register' for main:Object
已经安装了gem sinatra_warden。写得好require "warden"
& require "sinatra_warden"
sinatra_warden 0.3.2
看守1.2.6
当我在控制器中添加authorize!
方法时,出现错误
undefined method `authorize!'
答案 0 :(得分:1)
由于您未使用sinatra/base
,因此您应添加sinatra/namespace
。添加到app.rb
这需要require "sinatra/namespace"
。
Sinatra::Namespace
是一个将命名空间添加到的扩展名 应用。此命名空间允许您共享路径前缀 命名空间内的路由,并定义过滤器,条件和 错误处理程序专门为他们。除此之外,你也可以 注册助手以及仅在其中使用的扩展程序 命名空间。
或者将您的应用程序更改为模块化样式:
require "sinatra/base"
class MyApp < Sinatra::Base
register Sinatra::Warden
# The rest of your modular application code goes here...
end