如何在Sinatra中设置验证?

问题描述:

我需要博客的简单身份验证。对于一个人。只需登录网站如何在Sinatra中设置验证?

无法配置sinatra_warden。写app.rb

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 

,但我得到一个错误

NoMethodError: undefined method `register' for main:Object 

宝石sinatra_warden已安装。以及书面require "warden" & require "sinatra_warden"

sinatra_warden 0.3.2

*长1.2.6

当我加入控制器authorize!方法,我得到一个错误

undefined method `authorize!' 
+0

显示讨好的完整代码,您加入这一行。 –

+0

添加到问题 – Andrey

因为你没” t使用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 
+0

在app.rb中添加'require“sinatra/base”'和'class Myapp Andrey

+0

日志'Sinatra :: Base#选项已被弃用,将被删除,改为使用#settings。' – Andrey

+0

@Chumak这是另一个问题)。张贴另一个问题,也许我可以帮助。 –