Kaminari и маршрутизация страниц

Я использую разбивку на страницы kaminari на пользовательской странице, но она генерирует URL-адрес на основе /assets:

http://localhost:3000/assets?action=my&controller=blogs&page=2

Я нуждаюсь:

http://localhost:3000/blogs/my?page=2

Ошибка:

No route matches [GET] "/assets"

Какие-либо предложения?


person thesis    schedule 22.05.2012    source источник
comment
Вы используете обычный paginate @blogs? Остается ли ошибка, если вы удалите этот код из своего представления? Kaminari генерирует ссылки на основе текущего uri.   -  person melekes    schedule 22.05.2012
comment
Нет, у меня = paginate @posts . Я пытался передать параметры = paginate @posts, :params => { :controller => 'blogs', :action => 'my' }, генерируются те же неработающие ссылки. Насколько я понимаю, проблема в методе url_for.   -  person thesis    schedule 22.05.2012
comment
Не могли бы вы написать часть файла route.rb с маршрутами, используемыми на этой странице?   -  person melekes    schedule 22.05.2012
comment
Примерно через два часа экспериментов я наконец понял, что проблема не в каминари. В моем случае, если я визуализирую <%= url_for :controller => :admin %>, он будет отображать /assets?.....   -  person Ray Shih    schedule 20.06.2012


Ответы (2)


У меня была точно такая же проблема, когда я пытался настроить нумерацию страниц с помощью Kaminari или Will_paginate для пользовательского действия. Оказалось, что проблема была в моем файле route.rb.

Например, мое пользовательское действие называется «all_credit» в контроллере «карты». Ранее в route.rb у меня было:

match '/cards_credit' => 'Cards#all_credit'

Это давало мне то же поведение, которое вы описали выше, и генерировало активы/URL-адреса на основе.

Изменив строку в route.rb на:

match '/cards_credit(/:page)', :controller => 'cards', :action => 'all_credit'

Мне удалось решить эту проблему, и теперь ссылки с разбивкой на страницы генерируются правильно.

person simonb83    schedule 05.06.2012

Я решил добавить параметры контроллера.

<%= paginate @blog , :params => {:controller => "GoogleUsers"} %> 
person Grant Chen    schedule 02.08.2012