私はsinatra-authentication gemをSinatraアプリに追加しようとしていますが、そこにいてその一部を実行している間、何らかの理由でルートが追加されていないようです. コードの基本:
require 'sinatra'
require 'digest/sha1'
require 'rack-flash'
require 'mongo_mapper'
require 'sinatra-authentication'
MongoMapper.connection = Mongo::Connection.new('127.0.0.1', 27017, :pool_size => 5, :pool_timeout => 5)
MongoMapper.database = 'cms'
module CmsMod
class CmsApp < Sinatra::Base
use Rack::Session::Cookie, :secret => 'something secret'
use Rack::Flash
get '/' do
#redirect to('/list') # commented out for testing
end
get '/private' do
login_required
'Protected Page'
end
そして、残りのこと。症状は、ブラウザーを通常のルートに向けると正常に機能することです。「/private」に移動すると、「/login」に正しくリダイレクトされますが、古い「Sinatra doesn't know this ditty」というメッセージが表示されます。「/login」に直接アクセスしようとしても同じです。「binding.pry」を使用してgetブロック内のものを調べてみましたが、ルートがそこにないことがわかりました。これを引き起こす原因についてのアイデアは本当にありがたいです。