【问题标题】:Spree: undefined method `preference_definitions' for nil:NilClass狂欢:nil:NilClass 的未定义方法“preference_definitions”
【发布时间】:2013-09-25 15:51:08
【问题描述】:

我正在尝试在我的本地计算机上启动一个 RoR 应用程序。在运行 rake db:bootstrap 时,一切正常,直到:

Create the admin user (press enter for defaults).
Email [spree@example.com]: 
Password [spree123]: 
rake aborted!
undefined method `preference_definitions' for nil:NilClass
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/app/models/preference.rb:31:in `definition'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/app/models/preference.rb:37:in `value'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activemodel-3.1.10/lib/active_model/dirty.rb:143:in `attribute_change'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activemodel-3.1.10/lib/active_model/dirty.rb:117:in `block in changes'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activemodel-3.1.10/lib/active_model/dirty.rb:117:in `map'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activemodel-3.1.10/lib/active_model/dirty.rb:117:in `changes'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/attribute_methods/dirty.rb:34:in `block in save!'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/attribute_methods/dirty.rb:33:in `tap'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/attribute_methods/dirty.rb:33:in `save!'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:246:in `block in save!'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:194:in `transaction'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:208:in `transaction'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:246:in `save!'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree_core/preferences/model_hooks.rb:287:in `block (2 levels) in update_preferences'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree_core/preferences/model_hooks.rb:275:in `each'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree_core/preferences/model_hooks.rb:275:in `block in update_preferences'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree_core/preferences/model_hooks.rb:274:in `each'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree_core/preferences/model_hooks.rb:274:in `update_preferences'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/callbacks.rb:401:in `_run_save_callbacks'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/callbacks.rb:81:in `run_callbacks'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/callbacks.rb:264:in `create_or_update'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/persistence.rb:37:in `save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/validations.rb:50:in `save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/attribute_methods/dirty.rb:22:in `save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:241:in `block (2 levels) in save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:295:in `block in with_transaction_returning_status'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/connection_adapters/abstract/database_statements.rb:194:in `transaction'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:208:in `transaction'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:293:in `with_transaction_returning_status'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:241:in `block in save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:252:in `rollback_active_record_state!'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/transactions.rb:240:in `save'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/spree/preference_access.rb:20:in `set'
/home/nishant/voylla_website/db/seeds.rb:13:in `<top (required)>'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:234:in `load'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:234:in `block in load'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:223:in `block in load_dependency'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:640:in `new_constants_in'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:223:in `load_dependency'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/dependencies.rb:234:in `load'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/railties-3.1.10/lib/rails/engine.rb:488:in `load_seed'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activerecord-3.1.10/lib/active_record/railties/databases.rake:301:in `block (2 levels) in <top (required)>'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bundler/gems/spree-22cd84cc71d9/core/lib/tasks/core.rake:93:in `block (2 levels) in <top (required)>'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bin/ruby_noexec_wrapper:14:in `eval'
/home/nishant/.rvm/gems/ruby-1.9.2-p320@voylla/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:seed
(See full trace by running task with --trace)

我不知道这意味着什么。我找到了与我的问题相关的this 链接。但我不知道在哪里可以更改狂欢配置或 RAILS_ENV。有人可以帮忙吗。

谢谢

【问题讨论】:

  • 您是否尝试过使用 rails g spree:install 并在该任务中运行迁移和种子?
  • 不。让我试试。如何在该任务中运行迁移?
  • @Miotsu : rails g spree:installCould not find generator spree:install
  • 这不是一个好兆头。我建议你看看 Spree 的安装指南link 和 Spree 的 github 自述文件link
  • 您运行这么旧版本的 Spree 有什么原因吗?这似乎是 Spree 0.7 倍或更早,超过 2 年。

标签: ruby-on-rails ruby rake spree


【解决方案1】:

db 好像有问题。我使用了一个单独的转储来创建新的数据库,它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多