2015-09-30 11 views
1

Жемчуг не распознает ранее опубликованную почту, созданную до добавления драгоценного камня. Он только начал работать, когда были созданы новые сообщения. Почему?Rails gem - Общественная деятельность для более ранних сообщений

И, как иметь те ранние сообщения получают покрыты public_activity

Спасибо.
Gem setup в зависимости от автора сайт.

+1

На первый взгляд, похоже, что вы должны написать файл миграции, который добавляет «действия» к уже существующим сообщениям. См. Http://www.rubydoc.info/gems/public_activity/PublicActivity/Common:create_activity – wiesion

ответ

1

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

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 

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

class PublicActivity::Activity 
    attr_accessible :created_at 
end