веселье установить неопределенный метод mass_assignment_sanitizer - PullRequest
4 голосов
/ 10 февраля 2012

Я посмотрел на эту проблему в списке вопросов, но ничего не помогло.Это мой первый вопрос в stackoverflow, поэтому, пожалуйста, примите мои извинения на случай, если я сделаю что-то не так.Также у меня все еще есть много английского для улучшения.

Я устанавливаю Spree, следуя инструкциям github

$ 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 для работы с рельсами 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

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Как @Anatoly Ruchka предположил, что проблема в использовании рельсов 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

Большое спасибо

0 голосов
/ 11 февраля 2012

Я думаю, вы должны использовать rails версии 3.1.3 для spree_usa_epay

Чтобы сделать это, вы должны удалить все рельсы, которые у вас есть на компьютере

смотреть использовать

gem list -d rails

чем

sudo gem uninstall rails -v ...

и создайте новый проект с

rails new my_store

чем редактировать Gemfile и вставлять

драгоценный камень 'spree', '1.0.0'

и

bundle install

молодец

rails server
...