Ошибка имени в Rails 3

Поэтому я пытаюсь использовать гем Public Activity для временной шкалы уведомлений и не понимаю, почему я получаю NameError, неинициализированное константное сообщение. Вот ошибка, которую я получаю:

NameError in ActivitiesController#index
uninitialized constant ActivitiesController::PublicActivity

app/controllers/activities_controller.rb:3:in `index'

неинициализированная константа ActivityController::PublicActivity

Вот мой код контроллера, где говорится, что ошибка:

    class ActivitiesController < ApplicationController
      def index
       @activities = PublicActivity::Activity.order("created_at desc")
      end
     end

Я пробую это на основе ролей рельсов: http://railscasts.com/episodes/406-public-activity И, насколько я знаю, я сделал то же самое, что и тот, что на нем.

Не существует никакой модели активности, но вот модель публикации и комментариев, где я использовал модуль PublicActivity:

ПОЧТА МОДЕЛЬ:

class Post < ActiveRecord::Base
  include PublicActivity::Model
  tracked

КОММЕНТАРИЙ МОДЕЛЬ

class Comment < ActiveRecord::Base
    include PublicActivity::Model
tracked

belongs_to :post
belongs_to :user
end

1 ответ

Согласно источникам драгоценных камней

 def load_orm
      require "public_activity/orm/#{@@orm.to_s}"
      m = "PublicActivity::ORM::#{@@orm.to_s.classify}".constantize
      ::PublicActivity.const_set(:Activity,  m.const_get(:Activity))
      ::PublicActivity.const_set(:Adapter,   m.const_get(:Adapter))
      ::PublicActivity.const_set(:Activist,  m.const_get(:Activist))
      ::PublicActivity.const_set(:Trackable, m.const_get(:Trackable))
    end

Вы должны использовать следующий код

  @activities = ::PublicActivity::Activity.order("created_at desc")

Также убедитесь, что вы установили гем с комплектом, проверьте bundle show public_activity

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