【发布时间】:2011-06-13 11:40:40
【问题描述】:
我使用 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 版本的硬依赖。
非常感谢任何帮助。
保罗
【问题讨论】:
我使用 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 版本的硬依赖。
非常感谢任何帮助。
保罗
【问题讨论】:
我们遇到了类似的问题。我们在 Rails 2.3.4 上,想使用 OmniAuth (0.2.6)。不幸的是,到目前为止,我发现的唯一可能的解决方案是升级到在 Rack 1.1 上运行的 Rails 2.3.8 或更高版本(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
不幸的是,我现在正处于这一切的中间,所以我不能保证这会完全奏效,因为我正在使用自定义策略并且还没有完全完成。如果您仍然坚持这一点,如果没有别的,希望它为您提供一些深入挖掘的起点。
【讨论】: