2016-11-23 2 views
1

블로그에 간단한 인증이 필요합니다. 한 사람 한 명. 그냥 웹 사이트에 로그인하십시오.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

이 app.rb의 질문 – Andrey

답변

1

당신이 didn를하기 때문에 ' 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

본문에 추가되어'require "sinatra/base"및'Myapp Andrey

+0

로그'Sinatra :: Base # 옵션은 더 이상 사용되지 않으며 제거 될 것이고 대신 #settings를 사용하십시오. ' – Andrey

+0

@ Chumak 이것은 또 다른 질문입니다.) 다른 질문을 올리면 도움이 될 수 있습니다. –

관련 문제