1
私は単純な投稿 - コメントの関係を作成しようとしました。ここに私のモデルは次のとおりです。ここに は私のコメントのモデルである:ここで多態性の関係 "未定義のメソッド`#のためのコメント '後 "エラー
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
belongs_to :user
end
は私のPostモデルである:
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
すべてのようだ:
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments, as: :commentable
end
そしてここでは、生成されてしまったスキーマがあります良いとよく。しかし、私は、コンソールで実行するとき:
Post.last().comments()
私はエラーを取得する:
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
私は完全に立ち往生しています!これは確かに何らかの愚かなタイプミスである必要があります。
どのようにコンソールに着きますか?あなたのレールアプリのルートから 'rails c'を使っていますか? – ReggieB
@ReggieBはい、ルートから 'rails c'を使います。そして、「#<投稿ID:12、タイトル:「dsadasdasd」、本文:「asdasdsa」、user_id:4、created_at:「2016-11-26 14:28:37」、updated_at:「2016-11- 26 14:28:37 ">'これはちょうど私が作成したレンダントの投稿です。 –
このコードを追加した後、コンソールを再起動したか再読み込みしましたか? – lightalloy