2016-08-20 3 views
1

GetStream.io 피드를 사용하는 음악 앱이 있다고 가정하고 사용자 피드와 밴드 피드가있는 경우 (사용자가 다른 사용자를 따라갈 수있는 경우) 또는 밴드). 나는 stram-ruby 보석을 사용하고 있습니다.getstram.io 업데이트 활동으로 피드 위로 이동하지 않습니다.

@client.feed('band', band_id).get() 
:

user_feed = @client.feed('user', user_id) 
activity_data = { 
    :actor => "User:#{user_id}", 
    :verb => 'post', 
    :object => "Post:#{post.id}", 
    :target => "Band:#{band_id}", 
    :foreign_id => "Post:#{post.id}", 
    :time => post.created_at.as_json, 
    :comment => 'comment 1', 
    :to => ["band:#{band_id}"] 
} 
user_feed.add_activity(activity_data) 

이 잘 작동하고, 밴드 피드를 검색, 나는 그 게시물을 볼 수 있습니다 이제

는, 내가 좋아하는 일을하고, 밴드 피드 사용자로 게시하고 말

는 지금, 나는 (그냥 뭔가 변화를 볼 수있는 코멘트 필드를 사용하여)이 항목을 업데이트하는 오전 :

activity_data = { 
    :actor => "User:#{user_id}", 
    :verb => 'post', 
    :object => "Post:#{post.id}", 
    :target => "Band:#{band_id}", 
    :foreign_id => "Post:#{post.id}", 
    :time => post.created_at.as_json, 
    :comment => 'comment 2', 
    :to => ["band:#{band_id}"] 
} 
@client.update_activity(activity_data) 

올바르게 새 주석이 표시됩니다 ('주석 2') 밴드 피드를 받고,하지만 내 문제는 이것이다 :

내 게시물의 created_at 필드를 사용하고
  1. (GetStream 워드 프로세서로 업데이트 할 나의 능력을 보장하기 위해
  2. 업데이트에 동일한 created_at 시간을 사용합니다.
  3. 밴드 피드를 가져올 때 피드가 시간순으로 정렬되어야하기 때문에이 활동이 가장 상위 일 것으로 기대합니다. 그러나 created_at 시간을 기반으로 이전의 위치를 ​​유지합니다.

무엇을할까요?

게시물의 updated_at 필드를 사용해도되지만 GetStream 피드를 업데이트하지 않아서 내 DB의 게시물이 변경되는 경우 GetStream에서 더 이상 업데이트 할 수 없습니다.

나는 무엇이 있습니까?

답변

2

이렇게하는 데는 두 가지 방법이 있습니다.

1) 집계 피드를 사용할 수 있습니다. 이들은 집계 된 항목에 대한 최종 업데이트를 기반으로 정렬됩니다. (이것이 당신의 유스 케이스에 꼭 맞다고 가정)

2.) 당신은 스트림을 updated_at라는 필드로 보낼 수 있습니다. 다음으로 순위가 매겨진 피드를 사용하고 단순히 시간순 정렬 대신 updated_at별로 정렬하도록 스트림을 지정합니다.

일반적으로 순위 지정 방법을 만들면 피드 순위를 완전히 제어 할 수 있습니다. (비록 계획 만 유료) https://getstream.io/docs/#custom_ranking

+0

신속한 respone 주셔서 감사합니다! –

관련 문제