2013-08-17 43 views
1

我是Ruby/Rails/Spree的新手,並且試圖按照this tutorial創建一個簡單的擴展。創建spree擴展無法激活rails-3.2.4 - activesupport版本衝突

我輸入以下命令:

spree extension simple_sales 

並且cd到spree_simple_sales

任何rails命令我現在這個目錄中的類型(如rails -v)導致此錯誤:

C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1637:in `raise_if_conflicts': Unable to activate rails-3.2.4, because activesupport-4.0.0 conflicts with activesupport (= 3.2.14), actionpack-4.0.0 conflicts with actionpack (= 3.2.14), railties-4.0.0 conflicts with railties (= 3.2.14), activerecord-4.0.0 conflicts with activerecord (= 3.2.14), actionmailer-4.0.0 conflicts with actionmailer (= 3.2.14) (Gem::LoadError) 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:746:in `activate' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:780:in `block in activate_dependencies' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:766:in `each' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:766:in `activate_dependencies' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:750:in `activate' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:780:in `block in activate_dependencies' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:766:in `each' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:766:in `activate_dependencies' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:750:in `activate' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems.rb:212:in `rescue in try_activate' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems.rb:209:in `try_activate' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
    from D:/Dev/Tests and Tutorials/rails/extensions/spree_simple_sales/lib/spree_simple_sales/engine.rb:3:in `<class:Engine>' 
    from D:/Dev/Tests and Tutorials/rails/extensions/spree_simple_sales/lib/spree_simple_sales/engine.rb:2:in `<module:SpreeSimpleSale>' 
    from D:/Dev/Tests and Tutorials/rails/extensions/spree_simple_sales/lib/spree_simple_sales/engine.rb:1:in `<top (required)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/railties-4.0.0/lib/rails/engine/commands.rb:11:in `<top (required)>' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from C:/RailsInstaller/Ruby1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
    from script/rails:7:in `<main>' 

我能做些什麼來解決這個問題?我在Win 7上,已經使用RailsInstaller來安裝Ruby 1.9.3。我有兩個Rails 4.0.0和3.2.14,但我在Spree中使用Rails 3.2.14。

UPDATE 我發現如果我在rails命令前添加bundle exec例如。 bundle exec rails -v它的工作原理..但沒有bundle exec沒有軌道命令會產生上述錯誤..但爲什麼?爲什麼這個問題只發生在spree extension生成目錄?

回答

0

您的錯誤很可能是因爲您正在執行的rails命令是Rails 4,並且您在擴展中使用的Gemfile和/或gemspec指定了rails 3.2.x(反之亦然)。

嘗試與運行相同的命令:

rails _3.2.4_ -v 

在該目錄中。


另請注意,Rails 3.2.4是相當過時的幾個安全漏洞。你應該儘快升級。

+0

我使用rails 3.2.14而不是3.2.4,並且這個命令'rails _3.2.14_ -v'給了我同樣的錯誤。錯誤可能是由命令'spree extension'設置'spree_simple_sales'目錄引起的,但是使用rails 4而不是rails 3.2.14? – pandavault