2010-11-27 12 views
0
ruby-1.9.2-p0 > Subscription 
=> Subscription(id: integer, email: string, tuan: boolean, send: boolean, created_at: datetime, updated_at: datetime) 
ruby-1.9.2-p0 > Subscription.create("email"=>"dd") 
ArgumentError: wrong number of arguments (2 for 0) 
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/attribute_methods/read.rb:69:in `send' 
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1548:in `block in attributes=' 
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1544:in `each' 
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1544:in `attributes=' 
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1411:in `initialize' 

Ich habe den obigen Code verwendet. Ich möchte die create-Methode verwenden, um einen Datensatz in db, persistent zu machen, aber es löst einen Fehler aus. Ich bin neu bei rails3. Ich habe meine Syntax überprüft, habe keinen Fehler gefunden. Fehle ich etwas?Rails3 Methode erstellen Problem

Antwort

1

Ich habe es selbst herausgefunden. Im Subskriptionsmodell habe ich eine Spalte send verwendet.

Send kann ein Schlüsselwort von Schienen sein, so dass es einen Fehler ausgelöst hat. Nachdem ich es zu einem anderen Wort geändert habe, z. 'subscribe', dann funktioniert es gut.

(ich habe dieses Problem encounted wenn eine Spalte mit dem Namen „Typ“ zu verwendet)

+0

Hier ist eine Liste für den Einstieg: http://wiki.rubyonrails.org/rails/pages/reservedwords. Google "reservierte Wörter" für andere - es gibt keine "offiziellen", soweit ich weiß. – zetetic

+0

Wahr. Liste der reservierten Schlüsselwörter - http://oldwiki.rubyonrails.org/rails/pages/ReservedWords –

0

Haben Sie Ihre Initialisierung in Ihrem Abonnementmodell überschrieben?