Создание потока действий пользователя в рельсах - PullRequest
0 голосов
/ 20 декабря 2011

Я пытаюсь создать поток действий в моем приложении rails. Вот вспомогательные методы, которые я использую для создания списка лайков, полученных пользователем, и список историй, которые написал друг пользователя.

Позже я просто объединю их в один массив для отображения в виде. Но я хочу отсортировать мой окончательный массив по дате, но когда я использую .map в более ранних методах, я не могу понять, как получить туда объект даты, по которому я могу сортировать.

def get_stream(current_user)
    stories = get_friends_stories(current_user)
    likes = get_likes(current_user)
    stream = [stories, likes]
    stream.flatten
  end

def get_likes(user)
    stories = get_stories(user)
    likes = Like.find_all_by_story_id(stories)
    hash = likes.map {|like| "#{like.user.display_name} liked your story #{like.story.title}" }
  end

  def get_friends_stories(user)
    friends = get_friends(user)
    friend_ids = friends.map {|f| f.friend_id }
    stories = Story.find_all_by_user_id(friend_ids)
    hash = stories.map {|story| "#{story.user.display_name} wrote a story called #{story.title}" } 
  end

1 Ответ

0 голосов
/ 20 декабря 2011

Кажется, работает только простое изменение:

def get_stream(current_user)
    stories = get_friends_stories(current_user)
    likes = get_likes(current_user).sort_by {|l| l.created_at }
    streams = stories + likes
    streams.sort_by(&:created_at)
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...