我在rails 3应用程序中使用了will_paginate。
在我的控制器中,我有一行
def index
@blogs = Blog.paginate(:per_page => 5, :page => params[page])
end
在我的index.html.erb
中<div>
<% if @blogs.size.zero? %>
No Blogs Found
<% else %>
<%= render @blogs if @blogs %>
<% end %>
</div>
<%= will_paginate @blogs%>
在我的部分_blog.html.erb
中<% @blogs.each do |blog| %>
<%= link_to blog.title, blog_path(blog.id)%>
<% end %>
当我通过$ rails s运行应用程序时
部分显示内容per_page次.. 对于第一页,它会显示5次..
如何避免...... 给我一些建议......
EDIT
我将_blog.html.erb中的部分代码更改为 &lt;%= link_to blog.title,blog_path(blog.id)%&gt; 这是正确的,因为默认情况下rails 3会将集合@blogs发送给部分的循环中的部分无。
答案 0 :(得分:0)
当渲染向集合传递时,它会自动多次渲染部分。
因此,您希望部分_blog.html.erb只是:
<%= link_to blog.title, blog_path(blog.id)%>
您不需要每个语句,因为render语句会处理这个问题。
中的3.4.5“渲染集合”