添加活动会将用户对象添加为字符串而不是实际对象

时间:2017-06-15 15:58:37

标签: ruby-on-rails getstream-io

我目前正在将stream_rails通知Feed整合到现有应用中。我试图在用户跟随另一个用户时添加活动。非常简单,但由于某些原因,当我在add_activity的Feed上调用followed_user时,它会将信息添加为字符串。

这是我的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指向实际ActiveRecord对象的返回值的字符串,与object相同。在每个属性之前还有一堆添加的'u'

另外,我避免使用StreamRails.feed_manager.follow_user,因为我只想发送通知,而不是为关注者创建供稿来查看。感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

没关系,想出一个解决方案;虽然我确实有更多问题......

无论如何,回到答案。我认为stream-ruby宝石的add_activity宝石字符串 - 插入了data的{​​{1}}和actor的值。

使用object通过在我的关注模型中添加stream-railsactivity_notify方法发送通知,可以让其正确地向被关注者发送通知。

示例:

  1. 安迪想跟随约翰。
  2. Andy点击“关注”按钮。
  3. 跟随模型(这是一个连接表)在Andy和John之间创建了一个新的关系。
  4. 关注型号,其activity_object方法stream-railsactivity_notify向约翰的通知Feed发送通知。
  5. John收到通知,说Andy跟着John。
  6. 关注模特:

    activity_object