0

これをルートファイルに追加するrailscast requeチュートリアルに従って、resque-webサーバーをラックアプリケーションとしてマウントしようとしています:

mount Resque::Server, :at => "/resque"

Railsサーバーを起動すると、次のエラーメッセージが表示されます:

/Users/rick/.rvm/gems/ruby-1.9.2-p180/bundler/gems/authlogic-a087ad0cba3c/lib/authlogic/controller_adapters/sinatra_adapter.rb:50:in `included': undefined method `before' for Sinatra::Request:Class (NoMethodError)

authlogicと何か関係があるように見えますか?

これが何であり、それを修正する方法を知っている人はいますか?

4

1 に答える 1

2

私はauthlogicとsinatraで同じ問題に直面しました。Sinatra が宣言されている場合、authlogic は実装モジュールを混合します (lib/authlogic/controller_adapters/sinatra_adapter.rb を参照)。実装が含まれている場合、Sinatra::Request クラスでプライベート メソッド :before を呼び出そうとします。:before メソッドは、Sinatra::Delegator を使用して何らかの形で追加されました。

簡単に言えば、古いauthlogic gem(2.1.6)を削除した後に問題が解決したため、答えは最新のauthlogicバージョンを使用することです。

于 2011-11-29T16:57:22.063 に答える