kojot
September 19, 2011, 8:26am
1
Czy jest możliwość podania url’a jaki powinien znaleźć się w linkach generowanych przez will_paginate.
Teraz wygląda to tak:
will_paginate @restaurants
Który zawsze generuje linki do:
/restaurants?page=…
Chciałbym móc na przykład generować linki dynamicznie, raz żeby to było:
berlin/restaurants?page=…
a raz np:
deutsche/restaurants?page=…
Czy jest to możliwe przy wykorzystaniu will_paginate lub innego gem’a do paginacji?
deadman
September 25, 2011, 11:12pm
2
Hitsu
October 3, 2011, 5:18pm
3
Tutaj nic nie ma na ten temat.
Ja nie znam takiej opcji w will_paginate i chyba czegoś takiego nie uzyskasz.
A co do kaminari to nie się spece wypowiedzą.
[quote=kojot]Czy jest możliwość podania url’a jaki powinien znaleźć się w linkach generowanych przez will_paginate.
Teraz wygląda to tak:
will_paginate @restaurants
Który zawsze generuje linki do:
/restaurants?page=…
Chciałbym móc na przykład generować linki dynamicznie, raz żeby to było:
berlin/restaurants?page=…
a raz np:
deutsche/restaurants?page=…
Czy jest to możliwe przy wykorzystaniu will_paginate lub innego gem’a do paginacji?[/quote]
http://groups.google.com/group/will_paginate/browse_thread/thread/8c3215a8c8106644?pli=1
Mozesz tez napisac swoja calkiem nowa klase rendrujaca linki
require 'cgi'
require 'will_paginate/core_ext'
require 'will_paginate/view_helpers'
require 'will_paginate/view_helpers/link_renderer_base'
module WillPaginate
module ViewHelpers
# This class does the heavy lifting of actually building the pagination
# links. It is used by +will_paginate+ helper internally.
class LinkRenderer < LinkRendererBase
# * +collection+ is a WillPaginate::Collection instance or any other object
# that conforms to that API
# * +options+ are forwarded from +will_paginate+ view helper
# * +template+ is the reference to the template being rendered
def prepare(collection, options, template)
super(collection, options)
@template = template
@container_attributes = @base_url_params = nil
end
This file has been truncated. show original
module WillPaginate
module ViewHelpers
# This class does the heavy lifting of actually building the pagination
# links. It is used by +will_paginate+ helper internally.
class LinkRendererBase
# * +collection+ is a WillPaginate::Collection instance or any other object
# that conforms to that API
# * +options+ are forwarded from +will_paginate+ view helper
def prepare(collection, options)
@collection = collection
@options = options
# reset values in case we're re-using this instance
@total_pages = nil
end
def pagination
items = @options[:page_links] ? windowed_page_numbers : []
items.unshift :previous_page
This file has been truncated. show original
lub uzyc zapisu
will_paginate(@collection, :params => { :controller => "articles", :action => "paginate" })
ale to akurat moze byc niewystarczajace do twojego problemu
Tutaj nic nie ma na ten temat.
Ja nie znam takiej opcji w will_paginate i chyba czegoś takiego nie uzyskasz.[/quote]
Ja też nie znam
Myślałem, żeby to zrobić po prostu:
match ':city_or_country/restaurants' => 'restaurants#index'
resources :restaurants
@restaurants = Restaurant.paginate :page => params[:page], :per_page => 3,
:conditions => ['city like ? or country like ?', "%#{params[:city_or_country]}%", "%#{params[:city_or_country]}%"]
[code]<% @restaurants.each do |restaurant| %>
<%= link_to restaurant.name, restaurant %>
<%= link_to restaurant.city||'',"/#{restaurant.city}#{restaurants_path}"%>
<%= link_to restaurant.country||'',"/#{restaurant.country}#{restaurants_path}"%>
...
<%= will_paginate @restaurants %>[/code]
I paginuje.