2013-06-12 69 views
4

如果用戶創建帖子,我正在使用public_activity寶石跟蹤。 有沒有辦法來破壞公共活動記錄,對崗位的缺失,因此,在活動養活它不顯示是這樣的:Rails 3 public_activity,銷燬記錄

A post was deleted. 

,而是僅僅將刪除在活動表中的特定活動

謝謝。

回答

8

我認爲這是OP尋找/可能已經找到的東西,但沒有發佈解決方案。

快速示例場景:

用戶創建了一個評論,因此公共活動記錄(關鍵:comment.create)是該評論創建。

現在,讓我們說用戶刪除他的評論。

存儲在活動表中的活動(key:comment.create)與剛剛刪除的原始評論相關。

當用戶刪除其相應的活動(鍵:comment.create)時,一起刪除該原始活動。只需執行以下操作。

#comments_controller.rb or whatever class you are tracking 
def destroy 
    @comment = current_user.comments.find(params[:id]) 
    @activity = PublicActivity::Activity.find_by(trackable_id: (params[:id]), trackable_type: controller_path.classify) 
    @activity.destroy 
    @comment.destroy 
end 

希望這可以幫助別人。

+0

我得到一個未定義的方法'銷燬'爲零:NilClass,我錯過了什麼? –

+0

您是如何創建活動的?你是否實現了基於軌道演員陣容? http://railscasts.com/episodes/406-public-activity – itsthewrongway

+0

也許你可以看看我的問題 - > http:// stackoverflow。COM /問題/ 23046076 /未定義法滅上公開活動 –

2

在您的發佈模型中,您可以跟蹤已刪除帖子的詳細信息,以便在顯示有關刪除後的通知時使用它。 可以改善您的通知「一個帖子已被刪除」例如 例如您Post.rb具有字段「內容有一個帖子在XYZ ABC時間格式刪除」:內容,以便在你Post.rb

class Post < ActiveRecord::Base 
    include PublicActivity::Model 
tracked :params => { 
     :content => proc {|controller, model| (model.content)} 
    } 

,並在您public_activity /後/ destroy.html.haml 您可以訪問的內容p[:content] 或者你也可以拒絕與活動記錄:鍵=> post.destroy 的是,在行動指數 類NotificationsController <的ApplicationController您的通知控制器

def index 
    @activities = PublicActivity::Activity.order("created_at DESC").reject{|activity| (activity.key == "post.destroy" } 

這不會通知通知中的帖子刪除細節。

+0

謝謝你的回覆。由於我不希望轉儲表格並浪費一些空間,我是否可以刪除該記錄 我的意思是它實際上可能嗎? – swaroopsm

+0

你可以選擇一個記錄活動= PublicActivity :: Activity.select {| activity |(activity.key ==「post.destroy」)} 並在索引方法中刪除它,然後使用所有活動記錄通知我是否正確? –

+0

我實際上正在嘗試明星/未明星的帖子。而當我取消選中一個帖子時,我想要在我出演時被刪除的活動。 這可能嗎? – swaroopsm