2012-07-31 57 views
0

当我在Sinatra forked的应用程序,我在控制台运行ruby application.rb无法激活西纳特拉-的contrib宝石

~/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:1637:in `raise_if_conflicts': Unable to activate sinatra-contrib-1.3.1, because sinatra-1.4.0 conflicts with sinatra (~> 1.3.0) (Gem::LoadError) 

看出:

bundle show sinatra 
~/.rvm/gems/ruby-1.9.3-p194/bundler/gems/sinatra-b18310f73635 

# Gemfile 
source :rubygems 
gem 'sinatra', git: 'https://github.com/juanpastas/sinatra.git' 

and

bundle exec ruby application.rb 
application.rb:2:in `require': cannot load such file -- sinatra/content_for (LoadError) 

如果我添加gem 'sinatra-contrib'到Gemfile中,并且运行bundle,我得到:

Bundler could not find compatible versions for gem "sinatra": 
    In Gemfile: 
    sinatra-contrib (>= 0) ruby depends on 
     sinatra (~> 1.3.0) ruby 

    sinatra (1.4.0) 
+0

你尝试加入' 'require'前的宝石'sinatra'? – mpapis 2012-07-31 21:43:02

+0

我试过但没有。 Byt the way,$ LOAD_PATH contains'〜/ .rvm/gems/ruby​​-1.9.3-p194/bundler/gems/sinatra-b18310f73635/lib' – juanpastas 2012-07-31 22:13:53

回答

2

您正在使用旧版本的sinatra-contrib,切换到Git版本:

source :rubygems 
gem 'sinatra', git: 'https://github.com/juanpastas/sinatra.git' 
gem 'sinatra-contrib', git: 'https://github.com/sinatra/sinatra-contrib.git' 
+2

我认为'〜>'意思是任何大于1.3的版本,并且它意味着大于或等于1.3且小于1.4([bundler help](http://gembundler.com/rationale.html))。感谢您的帮助。 – juanpastas 2012-07-31 23:14:47