Ошибка при реализации act_as_commentable: неинициализированная константа Обсуждение:: Комментарий

Я получаю следующую ошибку в журнале сервера при попытке реализовать гем act_as_commentable для моей модели обсуждения:NameError - uninitialized constant Discussion::Comment:

Я сгенерировал файл миграции из файла readme и запустил rails db:migrate.

 rails generate acts_as_commentable_with_threading_migration

Я попытался перезапустить приложение.

Я следовал инструкциям по использованию, прочитанным мной, чтобы добавить это в мой файл модели:

class Discussion < ApplicationRecord
  acts_as_commentable
end

Сводка кода представления, чтобы попытаться отобразить список комментариев для модели обсуждения:

<% Discussion.where(guide_id: @guide.id).order(:created_at).each do|discussion| %>
 <% discussion.comment_threads.each do |comment| %>
   <p><%= comment.body %></p>
 <% end %>
<% end %>

изображение ошибки, указывающее на строку просмотра кода

Файл schema.rb содержит модель комментариев, добавленную посредством миграции в файле readme для gem:

 create_table "comments", force: :cascade do |t|
    t.integer "commentable_id"
    t.string "commentable_type"
    t.string "title"
    t.text "body"
    t.string "subject"
    t.integer "user_id", null: false
    t.integer "parent_id"
    t.integer "lft"
    t.integer "rgt"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.index ["commentable_id", "commentable_type"], name: "index_comments_on_commentable_id_and_commentable_type"
    t.index ["user_id"], name: "index_comments_on_user_id"
  end

1 ответ

Похоже, проблема заключалась в том, что при запуске миграции не было создано файла comment.rb. Возможно, я выполнил миграцию до удаления старого файла модели.

rails generate acts_as_commentable_with_threading_migration

У меня была модель комментария, которую я ранее создал до того, как пытался использовать гем act_as_commentable. Я попытался удалить файлы миграции, маршрутов, контроллера, модели и представления, а затем с помощью rails db: drop, за которыми следуют rails db: create и rails db: migrate, чтобы начать с нуля.

После перезагрузки сервера гем комментариев теперь работает.

Спасибо за помощь @Vasilisa!

Другие вопросы по тегам