除了创建操作之外,您是否可以通过其他控制器操作发送通知?

时间:2017-06-27 17:48:32

标签: ruby-on-rails getstream-io

我尝试通过create以外的其他操作发送通知。我的文章模型有一个published布尔属性/列,目前我有它所以它只在文章创建和发布时发送通知。

这是我的article.rb

  def activity_actor
    user
  end

  def activity_object
    self
  end

  def activity_notify
    return if user.followers.empty?
    user.followers.map(&:id).map do |user_id|
      StreamRails.feed_manager.get_notification_feed(user_id)
    end
  end

  def activity_should_sync?
    published
  end

  def activity_target
    return "article_#{Time.now}"
  end

我仍然喜欢原始功能(文章已创建且published为真),但我还希望在已创建文章并将published更新为true时发送通知。因此,我需要通过update操作发送通知。

似乎没有一种显而易见的方式来手动发送通知或控制发送通知的触发器。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我认为您需要在update行动中手动管理此内容。

feed = StreamRails.feed_manager.get_user_feed将返回Stream::Feed的实例,然后您可以调用feed.add_activity(activity_data)。如果您发送与原始活动相同的foreign_idtime,我们将执行upsert并更新原始活动。如果您正在更新之前的活动,则不会触发新通知,因此您也需要手动将该活动发送到其他通知字段。