2011-12-20 2 views
0

Я создаю веб-форум. На нем есть страница со списком потоков, а имя каждого потока ссылается на страницу с сообщениями об этом потоке.Ссылка на теги привязки с will_paginate in Rails 3.0.10

На странице тем мы хотели бы иметь возможность ссылаться на последнее сообщение в теме. Каждое сообщение имеет номер вверху, соответствующий порядку, в котором он был создан. Номер является якорем.

Код, который у меня есть, отлично работает, и ссылка «Последнее сообщение» на странице нитей идет прямо к правильному сообщению на странице сообщений ... если сообщение не находится за первой страницей сообщений. Я не могу получить URL-адрес '? Page = x' URL-адреса.

Все мое исследование, похоже, указывает, что this - это способ получить символ will_paginate, чтобы передать параметр страницы. Однако, похоже, он не работает в моем проекте.

Это мой фактический код нумерации на странице сообщений:

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

где «я» переменная, которая представляет пост номера.

Я не уверен, есть ли новый способ сделать это с использованием самой последней версии will_paginate или если я что-то упустил.

EDIT

Вот код, где якоря создаются на странице сообщений (у меня есть несколько вложенных маршрутов происходит):

<%= 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

ответ

0

Только так вы знаете, что вам не нужно, чтобы получить страницу = х часть, чтобы показать на странице 1. будет постраничной будет относиться: page => no sa мне как: страница => 1, так что если у вас нет особых причин, чтобы показать, что:

<%= will_paginate @posts %> 

будет работать нормально.

+0

Когда привязка, на которой я должен ссылаться, находится на первой странице, она работает. Моя проблема связана с якорями на стр. 2 и далее. Я думал, что тег anchor в вызове will_paginate был способом разрешить привязку к якорям, которые могут быть на любой странице. – Ralph

+0

Да, я не уверен, что полностью понимаю, чего вы ожидаете, и какие ошибки вы испытываете. Если вы можете попытаться быть очень конкретным в вопросе, я повторно напишу свой ответ для вас :) – andrewpthorp

+0

В принципе, я хотел бы связать что-то на странице с разбивкой по страницам. Ссылка может быть на первой странице этой страницы или на стр. 35.Я не могу ссылаться ни на что, кроме страницы 1. Когда ссылка выходит за пределы первой страницы, мне нужен URL-адрес для чтения url? Page = x # anchor, а не только для якоря # anchor. Я надеюсь, что это очистит. – Ralph

0

Я решил решить проблему, передав параметр: page, где я ссылаюсь на последнее сообщение. Так оно и есть:

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

Теперь он всегда отображает страницу в URL-адресе. Как заметил Эндрю, это не обязательно для ссылок на первой странице и немного нежелательно, но ссылки работают, поэтому я возьму его. Большая проблема заключается в том, что мне нужно было поместить код ruby, где я выясню, что такое «х» в представлении. Тьфу.

Я чувствую, что есть лучший способ сделать это ... но это будет служить тем временем.

Смежные вопросы