2016-03-20 4 views
0

Im используя камень ransack, который выполняет запросы и показывает соответствующие сообщения. Теперь я пытаюсь реализовать камень Каминари, чтобы показать 12 сообщений на страницу.Kaminari and Ransack gem

вот мой контроллер:

def index 
    @search = Post.search(params[:q]) 
    @post = @search.result(distinct: true) 

    @post = Post.order('created_at DESC').page(params[:page]).per(12) 
end 

проблема у меня есть, когда я нажимаю на кнопку Поиск, он не работает, посты же же, ничего не обновляется.

ответ

1

Так я понял, ответ, а не использовать kaminari gem, я перешел на will_paginate gem и изменил мой индексный метод диспетчеров:

@search = Post.search(params[:q]) 
@posts = @search.result(distinct: true).paginate(page: params[:page], per_page: params[:per_page]) 
2

Не запускайте пейджинг kaminari на Post ..., который просто игнорирует результаты поиска и создает новую коллекцию. Запустить пейджинг на @post коллекции.

def index 
    @search = Post.search(params[:q]) 
    @post = @search.result(distinct: true) 

    @post = @post.order('created_at DESC').page(params[:page]).per(12) 
end 
+0

все еще, кажется, не работает, он создает страницу и ограничивает 12 на страницу, но когда я нажимаю на следующую страницу или пытаюсь сделать запрос, ничего не загружается, он остается прежним? –

+0

Вы подтвердили, что используете «params [: page]», – SteveTurczyn

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