Следующая и предыдущая записи - PullRequest
2 голосов
/ 02 ноября 2011

В моем файле show.html.erb у меня есть две ссылки для следующего и предыдущего, например,

<%= link_to("Previous Post", @question.previous) if @question.previous %>
<%= link_to("Next Post", @question.next) if @question.next %>

.previous и .next - это методы в моей модели, которые находят либо текущий id + 1, либо -1

как в моей модели

def previous
  Question.find_by_id(id - 1, :select => 'id')
end

def next
  Question.find_by_id(id + 1, :select => 'id')
end

Но вместо того, чтобы увеличивать и уменьшать слепо, поскольку я мог бы удалить «Вопрос», поэтому я получу ошибку, могу ли я найти следующую/ предыдущий "Вопрос" из области действия запроса, из которого было получено действие show?

Ответы [ 2 ]

1 голос
/ 02 ноября 2011

Вы пробовали что-то подобное?

def previous
  Question.limit(1).order("id DESC").where("id < ?", id)
end

def next
  Question.limit(1).order("id DESC").where("id > ?", id)
end
0 голосов
/ 02 ноября 2011

Попробуйте действовать как приказано. https://github.com/imedo/acts_as_ordered

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...