Разбиение на страницы с помощью will-paginate с использованием драгоценного камня RSpotify

Я играю с RSpotify Gem https://github.com/guilhermesad/rspotify Теперь я попробовал чтобы добавить нумерацию страниц, используя гем will-paginate. Как вы можете видеть на моем сайте здесь https://rubyjukebox.herokuapp.com/ после поиска исполнителя а их больше 8 нумерация страниц работает нормально.

В моем artist_controller.rb у меня есть следующий код:

def index
if !params[:artist_name].empty?
@artists = RSpotify::Artist.search(params[:artist_name]).paginate(:page =>params[:page], :per_page => 8)
else
redirect_to root_path
end
end

А в index.html.erb у меня есть:

<%= will_paginate @artist, renderer: BootstrapPagination::Rails %>

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

Опять же, в моем artist_controller.rb у меня есть:

def show
@artist = RSpotify::Artist.find(params[:id])
@album = @artist.albums(country: 'DE').paginate(:page => params[:page], :per_page => 5)
end

И в моем show.html.erb у меня есть:

<%= will_paginate @album, renderer: BootstrapPagination::Rails %>

Любые идеи, где моя ошибка?


person nucci    schedule 26.02.2015    source источник
comment
Пожалуйста, покажите код, который генерирует список альбомов. Похоже, вы неправильно перебираете @album.   -  person Sebastian vom Meer    schedule 26.02.2015
comment
Спасибо, этого было достаточно в качестве подсказки. Раньше у меня было <% @artist.albums(country: 'DE').each do |album| %>, но это именно то, что я определил в @albums. Итак, рабочий код выглядит так: <% @album.each do |album| %>   -  person nucci    schedule 26.02.2015


Ответы (1)


Paginate – это метод класса, который не работает с переменной экземпляра.
Попробуйте Artist.album.paginate.

person Rod Chfat    schedule 15.03.2016
comment
Привет, добро пожаловать в SO. Это должен быть комментарий, а не ответ. Вы можете комментировать, как только заработаете достаточно репутации, поэтому вам следует поработать над этим. Ваше здоровье. - person Cthulhu; 15.03.2016