Rails gem — публичная активность для более ранних сообщений

Гем не распознает более ранние сообщения, которые были созданы до того, как гем был добавлен. Он начал работать только тогда, когда были созданы свежие сообщения. Почему это было?

И как сделать так, чтобы эти более ранние сообщения были освещены public_activity

Спасибо.
Настройка Gem согласно сайту автора.


person phenomenon    schedule 30.09.2015    source источник
comment
На первый взгляд кажется, что вам нужно написать файл миграции, который добавляет activities к уже существующим сообщениям. См. rubydoc.info/gems/public_activity/PublicActivity/.   -  person wiesion    schedule 30.09.2015


Ответы (1)


Вы должны создать старые действия вручную, используя метод create_activity. Для этого я создал задачу rake.

task public_activity_migration: :environment do
  User.find_each do |user|
    [:comments, :friends].each do |relation|
      user.send(relation).find_each do |obj|
        obj.create_activity :create, owner: user, created_at: obj.created_at
        print "."
      end
    end
  end
end

Приведенный выше код создаст действия для модели комментариев и друзей. Если вы не используете строгие параметры, вам также необходимо разрешить установку атрибута created_at для модели PublicActivity::Activity. . Это можно сделать, добавив следующий код перед запуском задачи.

class PublicActivity::Activity
  attr_accessible :created_at
end
person Linus Oleander    schedule 05.01.2016