Я использую драгоценный камень Kaminari для своего приложения ruby on rails (всем, кто еще использует will_paginate, я бы порекомендовал рассмотреть возможность переключения! Гораздо чище и универсальнее).
У меня проблема в том, что яхотите указать действие контроллера при выполнении нумерации страниц AJAX, т.е.заставить мою пагинацию работать удаленно, например:
<%= paginate @feeds, :param_name => :page, :remote => true%>
По умолчанию, когда я устанавливаю: remote => true, и добавляю следующие строки в мой файл контроллера "pages" home.js.erb, онработает на моей домашней странице.Мне даже не нужно указывать, на какой js частичный ссылаться;он выбирает автоматически.
$('.synopsis').html('<%= escape_javascript render('exchanges/synopsis', :feeds => @feeds)%>');
$('.paginator').html('<%= escape_javascript(paginate(@feeds, :param_name => :page, :remote => true).to_s)%>')
НО загвоздка в том, что этот div "synopsis" является частичным, который я рендерил на многих страницах моего приложения.Таким образом, на страницах, где контроллер не является моим контроллером «страниц», удаленное разбиение на страницы больше не работает.
Одним из решений было бы добавить эти две строки в файлы js.erb в моих различных контроллерах.Но это было бы излишним и не элегантным.
Я бы предпочел иметь возможность указать в вызове «paginate», какой контроллер и какое действие использовать для удаленного вызова.Тогда я думаю, что напишу действие вроде:
def paginate_remotely
respond_to paginate_remotely.js
end
Как я смогу это сделать?Кажется, это такой простой вопрос, но я не смог понять его.Следующее, конечно, не работает:
<%= paginate @feed_exchanges, :param_name => :exchange_page, :remote => true, :controller => :exchanges, :action => :paginate_remotely %>