2009-10-13 227 views
0

我試圖運行ActiveMerchant與老版本的Rails(1.2.6)寶石。如果我需要active_merchant寶石我得到這個錯誤:軌道上的紅寶石1.2.6和ActiveMerchant

config/boot.rb:17:Warning: Gem::SourceIndex#search support for String patterns is deprecated, use #find_name 
/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:280:in `activate': can't activate activesupport (>= 2.3.2, runtime) for ["activemerchant-1.4.2"], already activated activesupport-1.4.4 for ["rails-1.2.6"] (Gem::LoadError) 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:296:in `activate' 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295:in `each' 
     from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:295:in `activate' 

升級導軌是不可能的。 那我該怎麼辦? 也許我可以使用舊版本的ActiveMerchant,如果是這樣的話,哪個版本可以與rails 1.2.6兼容?

回答

1

嘗試安裝一個插件:

git clone git://github.com/Shopify/active_merchant.git vendor/plugins/active_merchant 
+0

我不認爲這可以開箱即用,因爲看起來該插件需要在lib/active_merchant.rb中有效支持> = 2.0.0:http://github.com/Shopify/active_merchant/blob/ master/lib/active_merchant.rb#L31 – 2009-10-14 04:49:35

+0

它的工作原理,請參見第28行。由於成功,它永遠不會到達第31行。 – pjb3 2009-10-14 12:32:29

+0

這可能是採取這種情況的最佳方法。我有一個仍然是Rails 1.2.6的應用程序,這個問題已經出現了好幾次。第二次之後,我們只派生了ActiveMerchant並作爲插件安裝。我們現在在Github上爲舊版rails應用程序維護我們自己的AM版本。 AM真的不會經常改變。大部分代碼都是穩定的,並且大部分新的更改都是新的網關。我們使用兩個具有較舊Rails應用程序的網關,因此新增加的內容並不真正關注我們。 – Phil 2009-10-19 16:24:19

-1

如果你要積極開發新的功能您的應用程序,需要升級到2.3軌道的時間。

這是一個痛苦,我同意,但堅持使用老版本的Rails,並使用更新的,不兼容的寶石會更糟糕!

花時間投資於Rails升級,你會很高興你做到了。想象一下你會得到的所有鐵軌2.x的善良!

+0

問題是「升級導軌不可行」。 – pjb3 2009-10-14 12:39:22

-1

正如Ariejan所說,更新到Rails 2.3是您可以做的事情的最好的

Active Merchant不會爲不同版本的項目添加標籤。所以你不能依靠它。 但是,您可以使用Rails 1.2.6發佈時的舊提交。

發佈是24th november 2007 因此,在發佈之前使用datas as they were at the last commit應該可以工作。

但我不會建議你這樣做。如果自那一刻以來(這是兩年前的一次安全更新),那麼您可以確信存在安全更新,那麼您的應用程序中就包含一個安全漏洞。
再次,升級到Rails 2.3是您可以在這裏採取的最佳選擇。

+0

問題是「升級導軌是不可能的」。在不瞭解情況的情況下,您不能說升級到Rails 2.3是最好的選擇。 – pjb3 2009-10-14 12:38:35

+0

感謝您的投票。我知道這樣做是不恰當的。我認爲我足夠提到升級更好的事實。 – 2009-10-14 12:38:47