我正在使用Rails 3和will_paginate。我已经成功地在一个三重嵌套资源中工作了will_paginate。我无法从不同的控制器链接到分页视图(第1页2 3 4)。我在一个控制器中,但我的分页发生在嵌套控制器中。说我有一个控制器'部分''主题'和'回复'。在我的节目“主题”控制器中,我对所有回复进行分页(因为它根据主题的路径提取回复)。所以现在我在show section视图中尝试链接到该主题的不同页面(每页约7个回复)。由于我在区段控制器中,因此无法轻松地对主题的回复进行分页,因为它依赖于视图中的主题循环。此外,我不一定要在主题名称旁边的“上一个”和“下一个”链接...我只需要(1 2 3 ... 10)或类似的东西。有没有办法保存这个分页以便在不同的控制器中使用?
最简单的方法是什么?
如果您很难理解,该视图就像是一个链接到不同页面的典型论坛帖子:
Section
Topic A (1 2 3)
Topic B (1)
Topic C (1 2 3 ...5)
Topic D (1 2 3 ...10)
但我不确定如何使用一个对分页一无所知的控制器中的will_paginate。
答案 0 :(得分:0)
很抱歉回答我自己的问题。这需要一段时间来解决这个问题。
我在没有使用will_paginate显示方法的情况下想出来了。我做了自己的帮手。我不知道这是否是“正确”的做事方式,但它确实有效。 我帮助输出了主题旁边的页码。在我看来,我有一个像这样的小组:
<% @topics.each do |topic| %>
<%= pageLinks(topic, @section) %>
<% end %>
然后在帮手中,我这样做了:
def pageLinks(t, s)
html = ""
if t.replies.count > 7
pageList = []
1.upto(t.replies.count/6) {|n| pageList << "#{link_to n, section_topic_path(s, t, :page =>n) } "}
html << "| page (#{pageList})"
html.html_safe
else
return
end
end
基本上我除以我想要的每页结果数量并根据它进行链接。
关于这段代码的一个有趣的事情让我花了一段时间才是link_to:page =&gt; n显示路径/ section / id / topic / id?page = n ...如果您使用'rake routes'中列出的路径,则必须在路径的参数中传递它。我也很难回复实际的html,而不是打印html本身。