2016-11-23 5 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!メソッドを追加するときは、「didnのので、私はエラー

undefined method `authorize!' 
+0

ショーは、この行を追加し、完全なコードをしてください。 –

+0

がapp.rbの質問 – Andrey

答えて

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 
+0

の本文に追加されました。 'require" sinatra/base "'と 'Myapp Andrey

+0

ログ 'Sinatra :: Base#optionsは廃止され、削除されます。代わりに#settingsを使用してください。 ' – Andrey

+0

@Chumakこれは別の質問です)。別の質問を投稿して、おそらく私は助けることができます。 –

関連する問題