2

そのため、通知タイムラインに Public Activity gem を試していますが、 NameError 、初期化されていない定数メッセージが表示される理由がわかりません。これが私が得ているエラーです:

NameError in ActivitiesController#index
uninitialized constant ActivitiesController::PublicActivity

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

初期化されていない定数

エラーが発生したと言われているコントローラーコードは次のとおりです。

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

Railsキャストに基づいてこれを試しています: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
4

1 に答える 1

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")

また、バンドルでgemをインストールしたことを確認してください。bundle show public_activity

于 2013-03-20T22:00:28.780 に答える