2016-11-03 8 views
-1

Ich versuche ein Objekt zu erstellen, aber ich bekomme einen wirklich seltsamen Fehler, von dem ich nicht sicher bin, woher er kommt oder wie er debuggt.NoMethodError: undefinierte Methode `detect 'für false: FalseClass

PushNotification.new(user_id: 7, notification_type: 'foo')

NoMethodError: undefined method `detect' for false:FalseClass 
from /usr/local/bundle/gems/activemodel-4.2.3/lib/active_model/attribute_methods.rb:471:in `match_attribute_method?' 
from /usr/local/bundle/gems/activemodel-4.2.3/lib/active_model/attribute_methods.rb:457:in `respond_to?' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_methods.rb:236:in `respond_to?' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_assignment.rb:56:in `rescue in _assign_attribute' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_assignment.rb:54:in `_assign_attribute' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_assignment.rb:35:in `each' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/attribute_assignment.rb:35:in `assign_attributes' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/core.rb:564:in `init_attributes' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/core.rb:281:in `initialize' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/inheritance.rb:61:in `new' 
from /usr/local/bundle/gems/activerecord-4.2.3/lib/active_record/inheritance.rb:61:in `new' 
from (irb):58 
from /usr/local/bundle/gems/railties-4.2.3/lib/rails/commands/console.rb:110:in `start' 
from /usr/local/bundle/gems/railties-4.2.3/lib/rails/commands/console.rb:9:in `start' 
from /usr/local/bundle/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:68:in `console' 
from /usr/local/bundle/gems/railties-4.2.3/lib/rails/commands/commands_tasks.rb:39:in `run_command!' 
from /usr/local/bundle/gems/railties-4.2.3/lib/rails/commands.rb:17:in `<top (required)>' 
from bin/rails:4:in `require' 

Mein Schema ist wie folgt:

create_table "push_notifications", force: :cascade do |t| 
    t.integer "user_id",   limit: 4, null: false 
    t.string "notification_type", limit: 191, null: false 
    t.datetime "created_at",     null: false 
    t.datetime "updated_at",     null: false 
end 

Irgendwelche Ideen, wo dies kommen könnte?

+0

Wie sieht Ihr 'PushNotification' Modell wie? –

+0

Ich dachte nicht, in das Modell zu schauen. Du hast Recht. Ich habe versehentlich ein reserviertes Wort als Funktionsname verwendet. – brunoban

Antwort

0

Ich habe versehentlich ein reserviertes Wort als Funktionsname verwendet, der diesen Fehler ausgelöst hat.

anderen Menschen zu helfen, die in diese laufen könnten:

http://www.rubymagic.org/posts/ruby-and-rails-reserved-words

+0

was war das Wort? –

+0

Das reservierte Wort war ** send ** – brunoban

+1

Es ist __nicht__ ein reserviertes Wort in einem echten Sinne. Vielmehr existiert eine sehr wichtige Methode mit diesem Namen, die Sie außer Kraft setzen und bestehende Funktionalität nicht verfügbar machen. Aber wenn wir zu stark vereinfachten, dann ist es ja ein reserviertes Wort. –

Verwandte Themen