部分在rails 3应用程序渲染:使用will_paginate时的per_page时间

时间:2011-02-11 06:35:40

标签: ruby-on-rails-3 will-paginate

我在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发送给部分的循环中的部分无。

1 个答案:

答案 0 :(得分:0)

当渲染向集合传递时,它会自动多次渲染部分。

因此,您希望部分_blog.html.erb只是:

<%= link_to blog.title, blog_path(blog.id)%>

您不需要每个语句,因为render语句会处理这个问题。

请参阅http://guides.rubyonrails.org/layouts_and_rendering.html

中的3.4.5“渲染集合”