Umair Ejaz
Umair Ejaz

Reputation: 273

NoMethodError: undefined method `[]' for false:FalseClass

Here are logs

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 > 

I am getting this above response when I try to save some object. Follwoing are my gem versions of mongoid and mongo , what I think is its an issue of mongoid.yml but not sure as my yml is perfectly fine

Using bson (1.3.1) Using bson_ext (1.3.1) Using mongo (1.3.1) Installing mongoid (2.1.9)

mongoid.yml

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:[email protected]:10029/appid

Please let me know if you find anything wrong in this

Upvotes: 7

Views: 16173

Answers (2)

user944293
user944293

Reputation:

I was posting my object and getting the error in Rails 3.0:

undefined method `[]' for false:FalseClass

but it works find now after I changed my code from:

save(false)

to:

save(:validate=> false)

Upvotes: 4

apneadiving
apneadiving

Reputation: 115521

try:

u.save(:validate=> false)

Upvotes: 30

Related Questions