2011-08-23 15 views
7

Aquí hay registrosNoMethodError: undefined método `[]' por falso: FalseClass

umair-2:game-minion umairejaz$ rails c 
/Users/umairejaz/.rvm/gems/[email protected]/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/[email protected]/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/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence/operations.rb:143:in `validating?' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:23:in `block in prepare' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `tap' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence/insertion.rb:22:in `prepare' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence/operations/insert.rb:26:in `persist' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:44:in `insert' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/mongoid-2.1.9/lib/mongoid/persistence.rb:142:in `upsert' 
from (irb):3 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands/console.rb:44:in `start' 
from /Users/umairejaz/.rvm/gems/[email protected]/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in `start' 
from /Users/umairejaz/.rvm/gems/[email protected]/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 > 

que estoy recibiendo esta respuesta anterior cuando intento para salvar algún objeto. Follwoing son mis versiones de la gema de MongoId y mongo, lo que creo que es un problema de su mongoid.yml pero no está seguro como mi yml está perfectamente bien

Usando BSON (1.3.1) Usando bson_ext (1.3.1) el uso de mongo (1.3.1) Instalación 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 

por favor, hágamelo saber si usted encuentra algo malo en este

+0

¿Cuál es la definición de la clase de usuario? –

+1

intente 'save (: validate => false)' – apneadiving

+1

'u.save (: validate => false)' – rubish

Respuesta

29

intento:

u.save(:validate=> false) 
+2

Esto realmente no aborda el problema subyacente, ¿verdad? Pegarle a la cabeza en la arena va a hacer estallar este problema en otra parte –

+2

@Bill Leeper: El OP intentó omitir las validaciones antes, pero utilizó la sintaxis anterior 'u.save (false)'. El mensaje de error aparece debido a un error de sintaxis. – rekado

5

que publiqué mi objeto y recibiendo el error en Rails 3.0:

undefined method `[]' for false:FalseClass

pero funciona ahora encontrar después de cambiar mi código de:

save(false) 

a:

save(:validate=> false) 
+0

¿Cómo esta respuesta agrega nueva información además de la aceptada? –

Cuestiones relacionadas