Ruby on rails 链接到带有将在Rails 3.0.10中分页的锚定标签

Ruby on rails 链接到带有将在Rails 3.0.10中分页的锚定标签,ruby-on-rails,will-paginate,Ruby On Rails,Will Paginate,我正在创建一个网络论坛。有一个页面上有一个线程列表,每个线程的名称链接到一个页面,页面上有关于该线程的帖子 在线程页面上,我希望能够链接到线程中的最后一篇文章。每个帖子顶部都有一个数字,对应于创建帖子的顺序。数字是一个锚 我的代码工作得很好,线程页面上的“最后一篇文章”链接直接指向文章页面上的正确文章……除非文章超出了文章的第一页。我无法显示URL的“?page=x”部分 我所有的研究似乎都表明这是让will_paginate gem通过页面参数的方法。然而,它似乎在我的项目中不起作用 这是我在

我正在创建一个网络论坛。有一个页面上有一个线程列表,每个线程的名称链接到一个页面,页面上有关于该线程的帖子

在线程页面上,我希望能够链接到线程中的最后一篇文章。每个帖子顶部都有一个数字,对应于创建帖子的顺序。数字是一个锚

我的代码工作得很好,线程页面上的“最后一篇文章”链接直接指向文章页面上的正确文章……除非文章超出了文章的第一页。我无法显示URL的“?page=x”部分

我所有的研究似乎都表明这是让will_paginate gem通过页面参数的方法。然而,它似乎在我的项目中不起作用

这是我在posts页面上的实际分页代码:

<%= will_paginate @posts, :params => {:anchor => i} %>
其中“i”是表示职位编号的变量

我不确定最新版本的will_paginate是否有新的方法来实现这一点,或者我是否遗漏了什么

编辑

以下是在posts页面上创建锚定的代码。我确实有一些嵌套路由:

<%= link_to(i, subject_topic_path(@subject, @topic, :anchor => i), {:name => i}) %>
下面是threads页面上的代码,链接到for语句的主播部分:

      <%= link_to "Last Post Created:", subject_topic_path(s.subject, s, :anchor => s.posts.count)%>

正如您所知,您不需要在第1页显示?page=x部分。Will paginate将把:page=>nil视为:page=>1,因此除非您有特定的理由表明:

<%= will_paginate @posts %>

将很好地工作。

我通过传递:page参数(我链接到上一篇文章的地方)解决了这个问题。因此:

      <%= link_to "Last Post Created:", subject_topic_path(s.subject, s, :page => x, :anchor => s.posts.count)%>
它现在总是在URL中显示页面。正如Andrew指出的,这对于第一页上的链接是不必要的,而且有点不受欢迎,但是链接是有效的,所以我将采用它。更大的问题是,我需要将ruby代码放在我想清楚视图中“x”是什么的地方。恶心


我觉得有更好的方法可以做到这一点……但这将暂时起作用。

你能发布更多的代码吗,也许是块?当我需要链接的锚在第一页时,它就起作用了。我的问题是第2页及以后的锚。我认为will_paginate调用中的:anchor标记是允许链接到任何页面上的锚的方式。是的,我不确定我是否完全理解您的期望和您遇到的错误。如果你能尝试在这个问题上非常具体,我会为你重新写我的答案:基本上,我想链接到一个分页页面上的东西。该链接可能位于该页面的第一页或第35页。我无法链接到第一页以外的任何内容。当链接超出第一页时,我需要URL来读取URL?page=xanchor,而不仅仅是urlanchor。我希望这能把事情弄清楚。