2017-06-15 26 views
1

我目前正在將stream_rails通知訂閱源集成到現有應用程序中。我試圖在用戶關注其他用戶時添加活動。非常簡單,但由於某種原因,當我在followed_user的訂閱源上調用add_activity時,它將信息添加爲字符串。添加活動將用戶對象添加爲字符串而不是實際對象

這裏是我的activity_data

activity_data = { 
    actor: current_user, 
    verb: 'Follow', 
    object: followable, 
    to: ["notifications:#{followable.id}"] 
    } 

這裏的activity_response,縮短爲簡潔:

activity_response = {"actor"=> 
    "{u'twitter_followers_count': 0, u'github_created_at': blahblahblah}", # other attributes removed for brevity 
"duration"=>"41ms", 
"foreign_id"=>nil, 
"id"=>"538bc690-51df-11e7-8080-8001521ad36e", 
"object"=> 
    "{u'twitter_followers_count': None, u'github_created_at': blahblahblah}", # other attributes removed for brevity 
"origin"=>nil, 
"target"=>nil, 
"time"=>"2017-06-15T15:28:47.931560", 
"to"=>[["notifications:301", "DVcbej_Id4IdQWHOYlA1n7RB4ps"]], 
"verb"=>"Follow"} 

當應該更像:

activity_response = {"actor"=> 
     #<User:0x007fa8fae1a488>, 
    "duration"=>"41ms", 
    # etc etc 
    } 

也不太清楚爲什麼actor點到一個實際的ActiveReco字符串rd對象的返回值,與object相同。在每個屬性之前還有一堆新增的'u'

此外,我避免使用StreamRails.feed_manager.follow_user,因爲我只想發送通知,而不是創建供追隨者查看的訂閱源。感謝任何幫助。謝謝!

回答

1

沒關係,想出了一個解決方案;雖然我確實有更多的問題...

無論如何,回到答案。我想stream-ruby寶石的add_activity寶石串插值dataactorobject的值。

使用stream-rails在我的跟蹤模型添加activity_notifyactivity_object的方法來發送通知,允許它正確地發送到誰是跟着人的通知。

例子:

  1. 安迪想跟隨約翰。
  2. Andy單擊Follow按鈕。
  3. Follow模型(這是一個連接表)創建了Andy和John之間的新關係。
  4. 跟隨模式,其中stream-rails方法activity_notifyactivity_object發送通知給約翰的通知飼料。
  5. 約翰收到通知,說安迪已經跟着約翰。

後續型號:

include StreamRails::Activity 
    as_activity 

    def activity_notify 
    [StreamRails.feed_manager.get_notification_feed(self.followable.id)] 
    end 

    def activity_object 
    self.followable 
    end