2011-12-20 75 views
0

我正在创建一个Web论坛。有一个页面上有一个线程列表,每个线程的名称链接到一个页面,其中有关于该线程的帖子。在Rails 3.0.10中使用will_paginate链接到锚标签

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

我的代码完美地工作,线程页面上的'最后发布'链接会在帖子页面上正确发布,除非帖子超出帖子的第一页。我无法获取网址的'?page = x'部分。

我的所有研究似乎表明,this是获取will_paginate gem来传递页面参数的方式。但是,它似乎并没有在我的项目中工作。

这是帖子页上我实际的分页代码:

<%= will_paginate @posts, :params => {:anchor => i} %> 

,其中“i”是表示后的数字变量。

我不确定是否有一种新方法可以用最新版本的will_paginate来做到这一点,或者我缺少一些东西。

编辑

这里就是锚的帖子页面(我有一些嵌套的路线怎么回事)上创建的代码:

<%= link_to(i, subject_topic_path(@subject, @topic, :anchor => i), {:name => i}) %> 

这里是线程页面上的代码,链接锚(它是语句的一部分):

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

你可以发布更多的代码,周围的块吗? – andrewpthorp 2011-12-20 05:26:22

回答

0

只要你知道,你不必让页面= X部分,以示对1页将分页会治疗?没有sa我作为:page => 1,所以除非你有特别的理由证明:

<%= will_paginate @posts %> 

会工作得很好。

+0

当我需要链接的锚点位于第一页时,它就起作用了。我的问题是第2页及以后的锚点。我认为在will_paginate调用中的:anchor标签是允许链接到可能在任何页面上的锚点的方式。 – Ralph 2011-12-20 14:33:42

+0

是的,我不知道我完全理解你的期望和你遇到的错误。如果你可以试着对这个问题进行非常具体的描述,我会为你重新编写我的答案:) – andrewpthorp 2011-12-20 18:07:51

+0

基本上,我想链接到分页页面上的内容。该链接可能位于该页面的第一页,或第35页。我无法链接到第一页之外的任何内容。当链接超出第一页时,我需要URL来读取url?page = x#anchor,而不仅仅是url#anchor。我希望能够清除它。 – Ralph 2011-12-20 18:28:52

0

我最终通过传递:page参数来解决问题,我链接到最后一篇文章。所以它是:

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

它现在总是在URL中显示页面。正如Andrew指出的那样,这对于第一页的链接并不是必需的,但有一点不可取,但这些链接起作用,所以我会采取。更大的问题是,我需要将ruby代码放在我想出视图中'x'的位置。呸。

我觉得有一个更好的方法来做到这一点......但这将同时发挥作用。