如何向此Feed结构添加多个资源

时间:2011-04-14 05:51:52

标签: ruby-on-rails ruby ruby-on-rails-3 feeds feed

我遵循了如何在Michael Hartl's tutorial中构建Feed。我的用户模型中有这个方法:

def feed
  Video.from_users_followed_by(self)
end

这在我的视频模型中:

scope :from_users_followed_by, lambda { |user| followed_by(user) }

def self.followed_by(user)
  followed_ids = %(SELECT followed_id FROM relationships
                       WHERE follower_id = :user_id)
  where("user_id IN (#{followed_ids})", { :user_id => user })
end

为了检索用户创建的所有视频,然后是current_user。

然后我在我的videos_controller中使用了这个方法:

def feed_display
  @videos = current_user.feed.page(params[:page]).per(15)
end

然后我在videos/feed_display.html.erb视图中渲染部分:

<div id ='video_div'>
    <%= render @videos, :collection => @videos %>
</div>

以显示用户关注的用户创建的所有视频。

现在我想在Feed中添加另一个资源,以便它包含用户所关注的用户的视频和video_votes。

我正在考虑将我的视频模型的模型范围代码复制到我的video_vote模型中,然后添加这一行:

VideoVote.from_users_followed_by(self)

feed方法,看起来像:

def feed
  Video.from_users_followed_by(self)
  VideoVote.from_users_followed_by(self)
end

我的问题是我应该如何修改我的feed_display方法和feed_display视图,以便它不仅可以显示视频而且还可以显示投票?

1 个答案:

答案 0 :(得分:0)

您可以修改SQL查询以包含带有UNION语句的第二个模型。