Где Kaminari вычисляет URL-адрес своей страницы?

Я работаю с созданной мной пользовательской моделью, которая притворяется табличным объектом ActiveRecord. Вместо этого он поддерживается представлением SQL. За кулисами есть некоторая хитрость.

Проблема в том, что ссылки на страницы с Kaminari работают некорректно. Они отображают правильные номера страниц и количество ссылок только на неправильный маршрут.

Мне нужно знать, где в источнике Каминари он определяет маршрут к объекту, на котором он настроен для разбиения на страницы. Или, если кто-то знаком с именем метода активной записи, которое будет использоваться для его вычисления.

Я искал исходный код, и я не могу понять это.

ОБНОВЛЕНИЕ
Моя реальная проблема была вызвана моим файлом маршрутов. У меня была эта запись -

match 'dashboard' => 'users#start', :as => 'user_root'

Вместо того, чтобы мои ссылки ссылались на /users/start?page=x, они ссылались на /users/dashboard?page=x. Я все еще был в том же действии контроллера, но я просматривал страницу, для которой требовались ссылки на страницы из /users/start, поэтому я подумал, что он будет использовать это, а не это правило соответствия. Удалил правило соответствия, и все готово!


person barancw    schedule 27.07.2012    source источник


Ответы (1)


Комментарий выше Kaminari::ActionViewExtension#paginate говорит, что он принимает ключ :params в хэше параметров, поэтому вы можете использовать его для переопределения параметров URL:

paginate @bloops, params: {controller: "foos", action: "index"}

По умолчанию предполагается, что мы разбиваем «текущую» страницу, что является обычным случаем.

От Kaminari::Helpers::Tag#initialize:

@params = @options[:params] ? template.params.merge(@options.delete :params) : template.params
person Dmitry    schedule 27.07.2012
comment
Я пытался понять синтаксис того, как это сделать. Я пытался передать ссылку напрямую, но это было невозможно. Проблема на самом деле заключалась в моем файле маршрутов. См. редактирование выше. - person barancw; 28.07.2012
comment
Похоже, это правило сопоставления задает значение params[:action] для панели инструментов. Это удивительно. - person Dmitry; 28.07.2012