我在问题列表中查看了这个问题,但没有任何帮助。 这是我在stackoverflow中的第一个问题,所以如果我做错了,请接受我的道歉。我还有很多英语需要改进。
我正在按照github说明安装Spree
$ gem install spree
$ rails new my_store
$ spree install my_store
当我收到此消息时
...
Admin Password [spree123]
gemfile spree
gemfile spree_usa_epay
gemfile spree_skrill
run bundle install from "./my_store"
git://github.com/spree/spree_usa_epay.git (at 0cb57b4) is not checked out. Please run `bundle install`
precompiling assets
git://github.com/spree/spree_usa_epay.git (at 0cb57b4) is not checked out. Please run `bundle install`
... 好吧,正如指南所说,如果出现循环依赖性问题,请执行:
$ gem install spree_cmd
$spree install my_store -A
gemfile spree
gemfile spree_usa_epay
gemfile spree_skrill
run bundle install from "./my_store"
git://github.com/spree/spree_usa_epay.git (at 0cb57b4) is not checked out. Please run `bundle install`
precompiling assets
git://github.com/spree/spree_usa_epay.git (at 0cb57b4) is not checked out. Please run `bundle install`
我将目录更改为应用程序并运行命令:
$cd my_store
$bundle install
我收到以下错误
Bundler could not find compatible versions for gem "rails":
In Gemfile:
spree_usa_epay (>= 0) ruby depends on
rails (<= 3.1.3, >= 3.1.1) ruby
rails (3.2.1)
之后我改变了gem文件以使用rails 3.1.3和coffeescript gems并再次重复整个过程,我得到了这个。
Users/Snake/.rvm/gems/ruby-1.9.3-p0/gems/activerecord- 3.1.3/lib/active_record/base.rb:1088:in `method_missing': undefined method `mass_assignment_sanitizer=' for ActiveRecord::Base:Class (NoMethodError)
from /Users/Snake/.rvm/gems/ruby-1.9.3-p0/gems/activerecord-3.1.3/lib/active_record/railtie.rb:59:in `block (3 levels) in <class:Railtie>'
它认为它可能是版本的rails狂欢,但我不知道是开始。
以前有人遇到过这个问题吗?
我运行Mac OS X 10.5.8
rails 3.2.1
ruby 1.9.3p0(2011-10-30修订版33570)[i386-darwin9.8.0]
ImageMagick @ 6.7.4-6_0 + q16
答案 0 :(得分:3)
由于@Anatoly Ruchka建议问题是使用rails 3.2.1,所以我切换到3.1.3。
这就是我所做的,我找到了@vonconrad的帖子,在那里他解释了如何在不触及安装的情况下创建铁路项目。
1)我为我的项目创建了一个目录文件夹:
$mkdir old_rails313
$cd old_rails313
$touch gemfile
$nano gemfile
2) 我粘贴了一个gemfile定义,指定你提到我想要的rails版本,所以它看起来像这个
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
gem "rspec-rails", ">= 2.8.0.rc1", :group => [:development, :test]
gem "factory_girl_rails", ">= 1.4.0", :group => :test
gem "cucumber-rails", ">= 1.2.0", :group => :test
gem "capybara", ">= 1.1.2", :group => :test
gem "database_cleaner", ">= 0.7.0", :group => :test
gem "launchy", ">= 2.0.5", :group => :test
#gem "devise", ">= 1.5.0"
gem 'spree','1.0.0'
3)然后我跑
bundle install
bundle exec rails new .
rails g spree:install
rails s
安装完成后我发现与'spree','1.0.0'有冲突,所以我将其评论出来。
我也收到了警告,但它确实有效:
[DEPRECATION WARNING] Nested I18n namespace lookup under "activerecord.attributes.spree/order" is no longer supported
非常感谢
答案 1 :(得分:0)
我认为你应该使用rails版本3.1.3进行spree_usa_epay
要做到这一点,你应该卸下机器上的所有导轨
观看使用
gem list -d rails
比
sudo gem uninstall rails -v ...
并使用
创建新项目rails new my_store
编辑Gemfile并粘贴
gem'spree','1.0.0'
和
bundle install
做得好
rails server