2009-10-13 224 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