2011-06-13 65 views
1

我使用Rails 2.3.5並想使用Omniauth但是我不能讓它們一起工作,因爲rails 2.3.5需要Rack 1.0.1和Omniauth(版本0.1.6 )需要機架1.1Rails的不兼容性2.3.5和Omniauth

我在Heroku上部署,所以我不認爲我可以入侵Rails並刪除對Rack1.0.1的嚴重依賴。

非常感謝任何幫助。

Paul

回答

2

我們有類似的問題。我們在Rails 2.3.4上,想要使用OmniAuth(0.2.6)。不幸的是,唯一可能的解決方案,到目前爲止,我發現是升級到Rails的2.3.8或更高版本運行於機架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

不幸的是我現在在這一切的中間,所以我不能承諾這個作品充分,因爲我使用的是自定義策略,還沒有完全作出它一直到最後。希望它爲您提供了一些起點,讓您深入挖掘,如果您仍然堅持這一點,如果沒有別的。