Ошибка при реализации act_as_commentable: неинициализированная константа Обсуждение :: Комментарий - PullRequest
0 голосов
/ 26 февраля 2019

Я получаю следующую ошибку в журнале сервера при попытке реализовать гем 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:

 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 Ответ

0 голосов
/ 27 февраля 2019

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

rails generate acts_as_commentable_with_threading_migration

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

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

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

...