Ruby on rails 命名错误:未定义的方法“[]';对于false:FalseClass

Ruby on rails 命名错误:未定义的方法“[]';对于false:FalseClass,ruby-on-rails,mongodb,rubygems,mongoid,Ruby On Rails,Mongodb,Rubygems,Mongoid,这是日志 umair-2:game-minion umairejaz$ rails c /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 /Users/umairejaz/.rvm/gems

这是日志

umair-2:game-minion umairejaz$ rails c
/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
/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
Loading development environment (Rails 3.0.7)
ruby-1.9.2-p290 :001 > u = User.new
=> #<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> 
ruby-1.9.2-p290 :002 > u.username = "umair"
=> "umair" 
ruby-1.9.2-p290 :003 > u.save(false)
NoMethodError: undefined method `[]' for false:FalseClass
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/operations.rb:143:in `validating?'
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'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `tap'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `prepare'
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'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:44:in `insert'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:142:in `upsert'
from (irb):3
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start'
from /Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
ruby-1.9.2-p290 :004 > 
umair-2:游戏仆从umairejaz$rails c
/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/script_rails_loader.rb:11:警告:路径中的不安全世界可写目录/usr/local/bin,模式040777
/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/bundler-1.0.18/lib/bundler/runtime.rb:136:警告:路径中的不安全世界可写目录/usr/local/bin,模式040777
加载开发环境(Rails 3.0.7)
ruby-1.9.2-p290:001>u=User.new
=> # 
ruby-1.9.2-p290:002>u.username=“umair”
=>“umair”
ruby-1.9.2-p290:003>u.save(假)
NoMethodError:false:FalseClass的未定义方法“[]”
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/operations.rb:143:in'validating'
来自/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'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in'tap'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in'prepare'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence/operations/insert.rb:26:in'persistent'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:44:in'insert'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:142:in'upsert'
来自(irb):3
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in'start'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in'start'
来自/Users/umairejaz/.rvm/gems/ruby-1.9.2-p290@rails3/gems/railties-3.0.7/lib/rails/commands.rb:23:in`'
来自脚本/rails:6:in'require'
来自脚本/rails:6:in`'
ruby-1.9.2-p290:004>
当我试图保存某个对象时,我得到了上述响应。下面是我的mongoid和mongo的gem版本,我认为这是mongoid.yml的问题,但不确定我的yml是否完美

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

蒙哥德

defaults: &defaults
  host: localhost

development:
  <<: *defaults
  database: gm_development

test:
  <<: *defaults
  database: gm_test
production:
  host: <%= ENV['MONGOID_HOST'] %>
  port: <%= ENV['MONGOID_PORT'] %>
  username: <%= ENV['MONGOID_USERNAME'] %>
  password: <%= ENV['MONGOID_PASSWORD'] %>
  database: <%= ENV['MONGOID_DATABASE'] %>
  uri: mongodb://username:password@staff.mongohq.com:10029/appid
defaults:&defaults
主机:本地主机
发展:
尝试:


我在发布我的对象时,在Rails 3.0中遇到了错误:

false的未定义方法“[]”:FalseClass

但在我将代码从以下位置更改为

save(false)
致:


用户类的定义是什么?请尝试
save(:validate=>false)
@apreading谢谢它对我有用:)@umair:那就作为答案发布吧。请接受这一点这并不能真正解决根本问题,是吗?把头埋在沙子里只会让这个问题突然出现elsewhere@BillLeeper:OP以前尝试跳过验证,但使用了旧语法
u.save(false)
。出现错误消息是因为语法错误。此答案如何在已接受的答案之外添加新信息?
save(false)
save(:validate=> false)