Ich habe versucht, eine einfache Posts-Kommentare-Beziehung zu erstellen. Hier ist mein Modell: hier ist mein Kommentar Modell:Polymorphe Beziehung "undefined Methode` Kommentare 'für # <Post ... "Fehler
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
belongs_to :user
end
Hier ist mein Beitrag Modell:
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments, as: :commentable
end
Und hier ist das Schema, das erzeugt wurde:
create_table "comments", force: :cascade do |t|
t.text "body"
t.integer "commentable_id"
t.string "commentable_type"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "comments", ["commentable_type", "commentable_id"], name: "index_comments_on_commentable_type_and_commentable_id", using: :btree
Alles scheint gut und gut. Aber wenn ich in der Konsole:
Post.last().comments()
Ich erhalte eine Fehlermeldung:
NoMethodError: undefined method `comments' for #<Post:0x0000000357e2b8>
Did you mean? committed!
from /usr/local/rvm/gems/ruby-2.3.0/gems/activemodel-4.2.7.1/lib/active_model/attribute_methods.rb:433:in `method_missing'
from (irb):36
Ich bin ganz fest! Das muss sicherlich eine Art dummer Tippfehler sein.
Wie kommen Sie zur Konsole? Benutzt du 'rails c' von der Wurzel deiner Rails App? – ReggieB
@ReggieB Ja, ich benutze 'rails c' von der Wurzel. Und wenn ich '#" Das ist nur ein Rendom Beitrag, den ich erstellt habe. –
Haben Sie nach dem Hinzufügen dieses Codes die Konsole neu gestartet oder neu geladen? – lightalloy