Я следовал за тем, как создать канал в Учебник Майкла Хартла . У меня есть этот метод в моей модели пользователя:
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>
Для отображения всех видео, созданных пользователями, пользователь следует.
Теперь я хочу добавить еще один ресурс в ленту новостей, чтобы он содержал как видео, так и 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
, чтобы он отображал не только видео, но и голоса?