【问题标题】:Errors when trying to start a new Rails app with Spree Commerce尝试使用 Spree Commerce 启动新的 Rails 应用程序时出错
【发布时间】:2025-12-20 19:40:06
【问题描述】:

尝试将 Spree Commerce(全新安装)安装到新的 rails 应用程序时出现以下错误。

无法加载生成器“generators/spree/install/install_generator”。错误:未初始化的常量 Bundler::Thor::Base。

任何帮助将不胜感激!我已经查看了 SpreeCommerce 文档、Spree 的 Github 上的资源以及出现的类似问题,这些解决方案对我不起作用。

编辑:这是我的 gemfile:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .coffee assets and views
gem 'coffee-rails', '~> 4.1.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby

# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug'

  # Access an IRB console on exception pages or by using <%= console %> in views
  gem 'web-console', '~> 2.0'

  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end


gem 'spree', '3.0.1'
gem 'spree_gateway', github: 'spree/spree_gateway', branch: '3-0-stable'
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '3-0-    stable'

以下是我尝试过的命令(全部在全新的 Rails 应用程序上...都产生与上述相同的错误):

1) 我已经尝试使用 Spree 的 github 页面上列出的方法:

$ gem install spree
$ rails _4.2.1_ new my_store
$ spree install my_store

2) 我尝试将 spree gem 手动添加到新的应用程序 gemfile,然后:

$ bundle install
$ rails g spree:install --sample=false --seed=false

3) 我已尝试按照 spreecommerce 教程中概述的步骤进行操作:

$ gem install spree_cmd
$ rails new mystore
$ spree install --auto-accept

【问题讨论】:

  • 你能发布你的 gemfile 吗?
  • 你究竟是如何安装的?你能发布你试图运行的命令吗?
  • @huoxito 我添加了我尝试过的所有命令组合。我已经在干净的 Rails 应用程序(所有 4.2.2)上尝试了每组命令。它们与 spree 的 github 页面和 spree 的入门教程页面上概述的相同
  • 对我来说没问题。你用的是什么红宝石版本? ruby -v我在ruby 2.1.2p95

标签: ruby-on-rails ruby bundler spree thor


【解决方案1】:

解决了这个问题。似乎它与 RVM 有关。

我通过创建一个新的 gemset(尽管基于我当前使用的相同版本的 Ruby)来修复它,并使用该特定的 gemset 创建一个新的 rails 应用程序。

然后我将 spree 添加到我的 gemfile,并运行以下命令:

$ bundle install
$ rails g spree:install --sample=false --seed=false

【讨论】: