プロジェクトをフォローしているユーザーがいます。プロジェクトにはブログ投稿があります。
私の目標は、ユーザーがフォローしているプロジェクトに関するブログ投稿を集約し、最新のものからリストすることです。現在、次のプロジェクトのブログ投稿を一覧表示する前に、1 つのプロジェクトのすべてのブログ投稿を一覧表示することしかできません。最新のすべてのプロジェクトによるすべてのブログ投稿を一覧表示するように修正する簡単な方法はありますか?
user.rb
has_many :projects
scope :newest, order("created_at desc")
project.rb
has_many :blogposts, :dependent => :destroy
blogpost.rb
belongs_to :project
belongs_to :user
scope :newest, order("created_at desc")
users_controller.rb
def show
@user = User.find_by_permalink(params[:permalink])
@projectsfollowed = @user.followed_projects.newest.page(params[:projectsfollowed_page]).per_page(10)
end
show.html.erb
<% @projectsfollowed.each do |project| %>
<% project.blogposts.newest.each do |blogpost| %>
<%= render blogpost %>
<% end %>
<% end %>
更新 コントローラーで配列を使用しようとしましたが、ページネーションとともに、最新のものを一覧表示することはできません。下記を参照してください:
blogids = Array.new
@projectsfollowed.each do |project|
project.blogposts.each do |blogpost|
blogids.push(blogpost[:blogpost.id])
end
end
@blog_posts = Blogpost.find(blogids)
更新された show.html.erb
<% @blog_posts.each do |blogpost| %>
<%= render blogpost %>
<% end %>