charlie.caroff-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
2007-May-29 23:50 UTC
help with pagination
I''m trying to follow the Agile Web Development example, and do
pagination.
I have a model SearchTerm, and another model Listing
Here''s SearchTerm
class SearchTerm < ActiveRecord::Base
has_many :listings
end
In my admin controller, if I do this
def show
@search_term = SearchTerm.find(params[:id])
end
Then, with a given id related to a search term, in a view, I can
iterate through listings that are related to a given search term id,
like this:
<% @search_term.listings.undeleted.each do |listing| %>
<div><%= listing.title %></div>
<% end %>
But I can''t figure out how to paginate these listings. The Agile Web
Development example uses one table with no parent table. If I do this
in my admin controller:
def list
@listing_pages, @listings = paginate :listings, :per_page => 25
end
I can have a list.rhtml view, with this
<% for listing in @listings %>
<%= listing.title %>
<% end %>
Then if I navigate to http://0.0.0.0:3000/admin/list
I certainly get a paginated list of 25 listings, but of course they
are not related to a given search term id, in my search_terms table.
It just starts with the first listing in the listings table, and gives
the first 25.
How do I hook up pagination to the parent table?
Charlie
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
charlie.caroff-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org wrote:> How do I hook up pagination to the parent table? > > Charliedef list @search_term = SearchTerm.find(params[:id]) @listing_pages, @listings = paginate :listings, { :per_page => 25, :conditions => [ ''search_term_id = ?'', @search_term.id ] } end That should do the trick. You can check out other options in the API docs... http://api.rubyonrails.org/classes/ActionController/Pagination.html#M000130 You can of course ommit the whole SearchTerm.find step, and put the params[:id] straight into the :conditions option. A lot of people will tell you the default pagination is a little slow in the performance stakes, I tend to agree. Eventually you will find yourself rolling your own, it works out a lot better in the long run. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Charlie, I posted a long how-to-paginate article that might help you. http://www.nullislove.com/2007/05/24/pagination-in-rails/ Best, Kevin Skoglund --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---