首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Sinatra应用程序时出错

运行Sinatra应用程序时出错
EN

Stack Overflow用户
提问于 2013-12-21 20:24:20
回答 1查看 146关注 0票数 0

我正在尝试使用最基本的app.rb运行Sinatra应用程序:

代码语言:javascript
复制
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之后,我将继续得到以下错误:

代码语言:javascript
复制
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是:

代码语言:javascript
复制
source 'https://rubygems.org'

gem 'sinatra'
gem 'sinatra-reloader'
gem 'sinatra-activerecord'
gem 'activerecord', '~> 3.2.13'
gem 'rake'
gem 'pg'
gem 'pry'

如有任何建议,我将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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启动应用程序。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20723206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档