ruby-on-rails – NoMethodError:未定义的方法`[]’表示false:FalseClass

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – NoMethodError:未定义的方法`[]’表示false:FalseClass前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是日志
  1. umair-2:game-minion umairejaz$rails c
  2. /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/script_rails_loader.rb:11: warning: Insecure world writable dir /usr/local/bin in PATH,mode 040777
  3. /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/bundler-1.0.18/lib/bundler/runtime.rb:136: warning: Insecure world writable dir /usr/local/bin in PATH,mode 040777
  4. Loading development environment (Rails 3.0.7)
  5. ruby-1.9.2-p290 :001 > u = User.new
  6. => #<User _id: 4e53f783713931a571000001,_type: nil,username: nil,first_name: nil,last_name: nil,email: nil,password: nil,password_salt: nil,password_hash: nil,profile_picture: nil,facebook_id: nil,facebook_enabled: nil,facebook_access_token: nil,twitter_id: nil,twitter_enabled: nil,twitter_access_token: nil,twitter_access_secret: nil,points: nil,remember_token: nil,remember_token_expires_at: nil>
  7. ruby-1.9.2-p290 :002 > u.username = "umair"
  8. => "umair"
  9. ruby-1.9.2-p290 :003 > u.save(false)
  10. NoMethodError: undefined method `[]' for false:FalseClass
  11. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/operations.rb:143:in `validating?'
  12. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:23:in `block in prepare'
  13. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `tap'
  14. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `prepare'
  15. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/operations/insert.rb:26:in `persist'
  16. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:44:in `insert'
  17. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:142:in `upsert'
  18. from (irb):3
  19. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start'
  20. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start'
  21. from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>'
  22. from script/rails:6:in `require'
  23. from script/rails:6:in `<main>'
  24. ruby-1.9.2-p290 :004 >

当我尝试保存一些对象时,我得到了以上响应. Follwoing是我的mongoid和mongo的宝石版本,我认为它是mongoid.yml的一个问题,但不确定,因为我的yml是完美的

使用bson(1.3.1)
使用bson_ext(1.3.1)
使用mongo(1.3.1)
安装mongoid(2.1.9)

mongoid.yml

  1. defaults: &defaults
  2. host: localhost
  3.  
  4. development:
  5. <<: *defaults
  6. database: gm_development
  7.  
  8. test:
  9. <<: *defaults
  10. database: gm_test
  11. production:
  12. host: <%= ENV['MONGOID_HOST'] %>
  13. port: <%= ENV['MONGOID_PORT'] %>
  14. username: <%= ENV['MONGOID_USERNAME'] %>
  15. password: <%= ENV['MONGOID_PASSWORD'] %>
  16. database: <%= ENV['MONGOID_DATABASE'] %>
  17. uri: mongodb://username:password@staff.mongohq.com:10029/appid

如果您发现任何问题,请告诉我

解决方法

尝试:
  1. u.save(:validate=> false)

猜你在找的Ruby相关文章