我正在创建一个网络论坛。有一个页面上有一个线程列表,每个线程的名称链接到一个页面,其中包含有关该线程的帖子。
在线程页面上,我希望能够链接到线程中的最后一篇文章。每个帖子的顶部都有一个数字,对应于它的创建顺序。这个数字是一个锚。
我的代码完美无缺,线程页面上的“最后发布”链接直接发布到帖子页面上的正确帖子...除非帖子超出帖子的第一页。我无法显示要显示的网址的“?page = x”部分。
我的所有研究似乎都表明this是让will_paginate gem传递page参数的方法。但是,它似乎不适用于我的项目。
这是我在帖子页面上的实际分页代码:
<%= will_paginate @posts, :params => {:anchor => i} %>
其中'i'是表示帖子编号的变量。
我不确定是否有一种新方法可以使用最新版本的will_paginate,或者如果我遗漏了某些内容。
修改
以下是在帖子页面上创建锚点的代码(我确实有一些嵌套路由):
<%= link_to(i, subject_topic_path(@subject, @topic, :anchor => i), {:name => i}) %>
这是线程页面上链接到锚点的代码(它是for语句的一部分):
<%= link_to "Last Post Created:", subject_topic_path(s.subject, s, :anchor => s.posts.count)%>
答案 0 :(得分:0)
您也知道,您不需要将?page = x部分显示在第1页。分页广告是否会对待:page =&gt;与nil相同:page =&gt; 1,所以除非你有特别的理由表明:
<%= will_paginate @posts %>
工作得很好。
答案 1 :(得分:0)
我最后通过传递:page参数来解决问题,我将链接到最后一篇文章。所以它是:
<%= link_to "Last Post Created:", subject_topic_path(s.subject, s, :page => x, :anchor => s.posts.count)%>
现在它始终显示URL中的页面。正如安德鲁指出的那样,第一页上的链接不是必需的,而且有点不受欢迎,但链接有效,所以我会接受它。更大的问题是我需要将ruby代码放在我想出视图中的'x'的位置。呸。
我觉得有更好的方法可以做到这一点......但这将同时发挥作用。