2011-08-23 10 views
7

Oto logiNoMethodError: niezdefiniowana metoda `[]” dla fałsz: 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 > 

jestem coraz to wyżej reakcji, gdy próbuję zapisać jakiś przedmiot. Follwoing są moje wersje klejnot mongoid i Mongo, co moim zdaniem jest jego emisja mongoid.yml ale nie wiem, jak moja yml jest perfekcyjnie

Korzystanie bson (1.3.1) Korzystanie bson_ext (1.3.1) Korzystanie Mongo (1.3.1) Instalowanie 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 

Proszę dać mi znać, jeśli znajdziesz nic złego w tym

+0

Jaka jest definicja klasy użytkownika? –

+1

spróbuj 'save (: validate => false)' – apneadiving

+1

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

Odpowiedz

29

try:

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

To naprawdę nie rozwiązuje problemu, który to powoduje? Przykucnięcie głowy w piasku spowoduje, że problem ten pojawi się gdzie indziej. –

+2

@Bill Leeper: OP próbował pominąć walidacje przedtem, ale użył starej składni "u.save (false)". Komunikat o błędzie pojawia się z powodu błędu składni. – rekado

5

byłem opublikowania mojego obiektu i uzyskiwanie błąd w Rails 3.0:

undefined method `[]' for false:FalseClass

ale działa znaleźć teraz po zmieniłem kod:

save(false) 

do:

save(:validate=> false) 
+0

W jaki sposób ta odpowiedź dodaje nowe informacje poza akceptowaną? –

Powiązane problemy