#ruby-on-rails #kaminari
#ruby-on-rails #kaminari
Вопрос:
Я пытаюсь получить ссылку на следующую страницу. Как бы я это сделал? Я получаю следующую ошибку при вызове link_to_next_page
неопределенный метод `link_to_next_page’
query = Posts.page(1).per(5).includes(author: :profile)
link = link_to_next_page(query, 'Next-Page')
Комментарии:
1.Вы уверены
gem kaminari
, что правильно установили? Можете ли вы убедиться, что@posts = Post.page(1).per(5)
<%= paginate @posts %>
это работает?2. Возможно, вы используете
link_to_next_page
помощник где-то за пределами шаблонов rails?3. @railscard Да, я использую его в своем контроллере. Мне нужно получить ссылку на следующую страницу и добавить ее в заголовок моего ответа. Возможно ли это?
4. попросите вас сослаться на это видео, объяснить очень красиво.. railscasts.com/episodes /…
5. Если вы хотите поместить заголовки ссылок RFC 5988, рассмотрите возможность использования api-разбивки на страницы
Ответ №1:
Помощники ссылок недоступны в контроллерах. Вы можете включить весь вспомогательный модуль в свой контроллер, но лучше использовать view_context
для доступа к определенному вспомогательному методу:
query = Posts.page(1).per(5).includes(author: :profile)
link = view_context.link_to_next_page(query, 'Next-Page')
Удачи!
Комментарии:
1. Он больше не вылетает, но ссылка на следующую страницу пуста
Ответ №2:
def paginate(query)
query.offset!((@page-1) * @per_page)
query.limit!(@per_page 1)
result = query.to_a
if (result.size > @per_page)
result.pop
response.headers['Link'] = CREATE_NEXT_AGE_LINK_HERE
end
result
end