Rails 2.3.5和Omniauth之间不兼容

时间:2011-06-13 11:40:40

标签: ruby-on-rails omniauth

我使用Rails 2.3.5并且想要使用Omniauth但是我不能让它们一起工作,因为rails 2.3.5要求Rack 1.0.1和Omniauth(版本0.1.6)需要Rack 1.1

我部署在Heroku上,所以我不相信我可以入侵Rails并删除对Rack 1.0.1版本的硬依赖。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我们遇到了类似的问题。我们使用的是Rails 2.3.4,并希望使用OmniAuth(0.2.6)。不幸的是,到目前为止我发现的唯一可能的解决方案是升级到Rails 2.3.8或更高版本,它运行在Rack 1.1(OmniAuth所需的最低要求)上,然后需要OmniAuth,如下所示:

# In config/environment.rb require 'omniauth' (or 'oa-<strategy_name>') before Rails::Initialize
require 'omniauth'
Rails::Initializer.run do |config|
  ...

# Add your own initializer for OmniAuth
# /config/initializers/omniauth.rb
ActionController::Dispatcher.middleware.use OmniAuth::Builder do
  # your strategy provider logic
end

这主要是通过其中的主题/链接进行了修饰:http://groups.google.com/group/omniauth/browse_thread/thread/676fa835428e9c83

不幸的是,我现在正处于这一切的中间,所以我不能保证这完全可行,因为我正在使用自定义策略并且还没有完全达到目的。希望它为你提供一些起点,如果你仍然坚持这个,你可以深入挖掘。