Ruby on rails 3 在rails中创建用户操作流

Ruby on rails 3 在rails中创建用户操作流,ruby-on-rails-3,Ruby On Rails 3,我正在尝试在rails应用程序中创建一个动作流。下面是我用来生成用户收到的喜欢列表和用户朋友写的故事列表的助手方法 稍后,我简单地将它们组合到一个数组中以显示在视图中。但是,我想按日期对我的最终数组进行排序,但是当我在前面的方法中使用.map时,我想不出如何在其中获得一个可以排序的日期对象 def get_stream(current_user) stories = get_friends_stories(current_user) likes = get_likes(curre

我正在尝试在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

一个简单的改变似乎就行了:

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