Spree的最新版本在远程执行此操作 – 未定义的方法`set_preference’为nil:NilClass

一切都在我当地完美。 我在服务器上正确安装了所有内容,当我运行rake db:bootstraprake db:migrate ,我得到了:

 rake aborted! undefined method `set_preference' for nil:NilClass /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/whiny_nil.rb:48:in `method_missing' /home/chrisisraw/webapps/rails/gems/bundler/gems/spree-17e74dd1e908/core/lib/spree/preference_access.rb:18:in `set' /home/chrisisraw/webapps/rails/gems/bundler/gems/spree-17e74dd1e908/core/lib/spree/preference_access.rb:17:in `each' /home/chrisisraw/webapps/rails/gems/bundler/gems/spree-17e74dd1e908/core/lib/spree/preference_access.rb:17:in `set' /home/chrisisraw/webapps/rails/Live-Jolly-Foods/config/initializers/jolly.rb:1 /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `load' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `load' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:235:in `load' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/engine.rb:201 /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/engine.rb:200:in `each' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/engine.rb:200 /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/initializable.rb:25:in `instance_exec' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/initializable.rb:25:in `run' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/initializable.rb:50:in `run_initializers' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/initializable.rb:49:in `each' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/initializable.rb:49:in `run_initializers' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/application.rb:134:in `initialize!' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/application.rb:77:in `send' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/application.rb:77:in `method_missing' /home/chrisisraw/webapps/rails/Live-Jolly-Foods/config/environment.rb:5 /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:596:in `new_constants_in' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:225:in `load_dependency' /home/chrisisraw/webapps/rails/gems/gems/activesupport-3.0.5/lib/active_support/dependencies.rb:239:in `require' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/application.rb:103:in `require_environment!' /home/chrisisraw/webapps/rails/gems/gems/railties-3.0.5/lib/rails/application.rb:216 /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:636:in `call' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:636:in `execute' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:631:in `each' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:631:in `execute' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' /usr/local/ruby1.8.7ee/lib/ruby/1.8/monitor.rb:242:in `synchronize' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:604:in `each' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain' /usr/local/ruby1.8.7ee/lib/ruby/1.8/monitor.rb:242:in `synchronize' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' /home/chrisisraw/webapps/rails/gems/bundler/gems/spree-17e74dd1e908/core/lib/tasks/core.rake:71 /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:636:in `call' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:636:in `execute' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:631:in `each' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:631:in `execute' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' /usr/local/ruby1.8.7ee/lib/ruby/1.8/monitor.rb:242:in `synchronize' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2029:in `each' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2001:in `run' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/lib/rake.rb:1998:in `run' /home/chrisisraw/webapps/rails/gems/gems/rake-0.8.7/bin/rake:31 /home/chrisisraw/webapps/rails/bin/rake:19:in `load' /home/chrisisraw/webapps/rails/bin/rake:19 

有人想出来吗?

您不必删除初始化程序文件initializers / whatever.rb ,只测试是否存在spree实例:

 if Spree::Config.instance Spree::Config.set(:stylesheets => 'screen') end 

好吧,看起来在我的扩展中我有这个:

 Spree::Config.set(:stylesheets => 'screen') 

但是因为这个被设定了两次? 不确定..但是如果我删除它,一切都很完美,因为“屏幕”已经在默认首选项中设置。

然后我必须确保我在结尾处运行我的迁移: RAILS_ENV='production'

我们是金色的!

遵循http://osdir.com/ml/spree-user/2009-11/msg00248.html并在文件initializers/prefs.rb设置首选项以禁用SSL后,我遇到了同样的错误。 删除它允许我运行我的迁移。

这是在我的开发机器上

我和rvm有同样的问题。 当与一个干净的gem集相比时,问题是有问题的gem在捆绑包和gems目录中都是同时存在的。 因此,可能的解决方法是创建一个新的gemset并运行bundle install。

跟着这些步骤:

一:在“config / initializers / spree_config.rb”中注释掉所有内容

二:运行:

 bundle exec rake db:migrate 

三:取消注释config / initializers / spree_config.rb

四:运行:

 bundle exec rake db:bootstrap