Ошибка имени в 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