我想在我博客的索引中显示所有类别的最后10篇帖子。
我在views / categories / index.html.erb文件中有这个,但它不起作用:
<% @posts.limit(10).each do |post| %>
<div class="single_post group">
<div class="post_details">
<h2><%= link_to post.title, category_post_path(@category, post) %></h2>
<%= image_tag post.image(:header), class: "post_image" %>
<p><%= post.body %></p>
</div>
</div>
<% end %>
这是我的categories_controller.rb文件:
def index
@category = Category.all
@posts = @category.posts.order("created_at desc")
end
我做错了什么?
答案 0 :(得分:1)
@posts = Post.order('created_at desc').limit(10)
答案 1 :(得分:0)
您的问题在于categories_controller#index
中的关联:
在那里,您定义了一个包含所有类别的实例变量@category
当您在posts
上致电@category
时,这将无效,因为您有一个ActiveRelation
元素,respond_to
posts
方法定义了has_many
1}}设置。
正如@ arun15thmay建议的那样,将您的查询变为
@posts = Post.order('created_at desc').limit(10)
使用该查询,您可以避免处理所有类别并具有相同的效果,即最后10个帖子(无论它们来自哪个类别)都会被选中。