0

我正在尝试根据 railscast reque tutorial 将 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_adapter/sinatra_adapter.rb)。当包含实现时,它会尝试在 Sinatra::Request 类上调用私有方法 :before。:before 方法以某种方式使用 Sinatra::Delegator 添加。

长话短说 - 在我删除旧的 authlogic gem (2.1.6) 后问题就消失了,所以答案是使用最新的 authlogic 版本。

于 2011-11-29T16:57:22.063 回答