https://github.com/rails-engine/action-activity
Social activity
https://github.com/rails-engine/action-activity
Last synced: 4 months ago
JSON representation
Social activity
- Host: GitHub
- URL: https://github.com/rails-engine/action-activity
- Owner: rails-engine
- License: mit
- Created: 2020-09-14T03:36:15.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2020-09-14T03:49:01.000Z (almost 5 years ago)
- Last Synced: 2025-01-05T06:42:57.497Z (6 months ago)
- Size: 2.93 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# action-activity
Social activity
## TODO
```sql
class CreateActivities < ActiveRecord::Migration[6.0]
def change
create_table :activities do |t|
t.string :action, null: false
t.references :actor, polymorphic: true, null: false
t.references :target, polymorphic: true
t.references :second_target, polymorphic: true
t.jsonb :payload, null: false, default: {}
t.integer :status, null: false, default: 1t.timestamps
end
create_index :activities, [:actor_type, :actor_id, :status]
create_index :activities, [:actor_type, :actor_id, :action, :status]
create_index :activities, [:target_type, :target_id]
create_index :activities, [:second_target_type, :second_target_id]
end
end
```- actor - polymorphic,可以是一个用户,可以是一个群
- action - 动态类型,比如 `follow-user`, `create-comment`, `create-topic`, `join-group`
- target - 触发创建出动态的第一个数据对象(确保存储用于是第一个数据),比如 `create-comment` 场景,target 应该是创建出来的 comment
- second_target - 触发创建动态的次级数据对象,比如 `create-comment` 场景里面,comment 的 target
- payload - 用于存储其他数据,比如 `rename-group`,里面 payload 存储 `{ from: "old-name", to: "new-name" }`,也可以存储更复杂的关联数据,已解决 target, second_target 无法满足的场景。
- status - 用于数据存在审核、软删除的场景,在 target / second_target 等数据状态变更的时候,可以同步更新 activity,这样不用删除。