Маршрут will_paginate работает только на странице › 1

У меня определены следующие маршруты:

map.resources :categories, :has_many => :downloads
map.resources :downloads, :member => {:go => :get}, :collection => {:tag => :get}
map.connect '/downlods/page/:page', :controller => 'downloads', :action => 'index'
map.connect '/categories/:category_id/downloads/page/:page', :controller => 'downloads', :action => 'index'

По какой-то причине первая страница, на которой вызывается помощник will_paginate, вызывает отображение ссылок с ?page=2, а последующие страницы имеют ссылки с /downloads/page/2. Вы знаете, что может быть причиной этого?


person Avishai    schedule 16.04.2010    source источник
comment
покажи свой код will_paginate, пожалуйста   -  person fl00r    schedule 16.04.2010


Ответы (1)


Если вы просто объявите маршрут с помощью map.connect, он может быть пропущен в отношении того, как он маршрутизируется, если вы сделаете что-то вроде:

link_to("Next", :page => 2)

Что вы можете сделать, так это назвать маршрут, а затем использовать его таким образом:

map.downloads_paginated '/downloads/page/:page', :controller => 'downloads', :action => 'index'

Затем вы используете маршрут по имени:

link_to("Next", downloads_paginated_path(2))

Эти гораздо надежнее.

В качестве примечания, у вас есть «/downlods» в вашем пути вместо «/downloads», но я не уверен, что это вызовет описанную проблему.

person tadman    schedule 16.04.2010
comment
will_paginate( @blah, {:controller => 'downloads'}) также может помочь явное указание контроллера. - person Tim Snowhite; 01.05.2010