2013-03-20 90 views
2

所以我嘗試了公共活動gem的通知時間線,我不明白爲什麼我得到NameError,未初始化的常量消息。 這裏是我得到的錯誤:NameError in Rails 3

NameError in ActivitiesController#index 
uninitialized constant ActivitiesController::PublicActivity 

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

未初始化的常量ActivitiesController :: 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 
+0

您可以發佈您'Activity'模式的定義是什麼?它是在'PublicActivity'模塊下的命名空間嗎? – sergelerator 2013-03-20 21:44:38

+0

我編輯了我的帖子。 – Pau 2013-03-20 21:56:05

回答

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