我正在尝试使用最基本的app.rb运行Sinatra应用程序:
require 'sinatra/activerecord/rake'
require 'bundler/setup'
Bundler.require(:default)
require_relative './config'
require_relative './models/star'
require_relative './models/planet'
require_relative './models/moon'
require_relative './models/astronaut'
get '/' do
erb :index
end在使用Bundle并创建Gemfile.lock之后,我将继续得到以下错误:
You have already activated activesupport 4.0.2, but your Gemfile requires activesupport 3.2.16. Using bundle exec may solve this. (Gem::LoadError)我的Rakefile是:
source 'https://rubygems.org'
gem 'sinatra'
gem 'sinatra-reloader'
gem 'sinatra-activerecord'
gem 'activerecord', '~> 3.2.13'
gem 'rake'
gem 'pg'
gem 'pry'如有任何建议,我将不胜感激。
发布于 2013-12-22 02:12:07
您的系统上安装了ActiveRecord 4.0.2和3.2.13。应用程序的第一行需要sinatra/activerecord/rake,这反过来是activerecord,而不指定哪个版本。这将激活并加载4.0.2 -最新版本。
在下一行中,您尝试设置Bundler。邦德勒现在尝试激活ActiveRecord的3.2.13版本,这是在您的Gemfile中指定的,但是无法激活,因为一个版本已经被激活了,所以您将得到一个错误。
要修复,只需确保在需要任何其他文件之前先调用require 'bundler/setup'。这将确保您所需的任何文件都与您的Gemfile兼容。
或者,您可以删除要求bundler/setup的调用,并确保始终使用bundle exec启动应用程序。
https://stackoverflow.com/questions/20723206
复制相似问题