Paginate() from multiple tables

Hi

I’m wondering if there’s a way I can gather data from multiple tables
from the child table by using the paginate method?

I would have done it using select_by_sql but I need it to paginate.

My table structure is:

Records is a child of Date and Account

Date Account
| |
^ ^
Records

I want to be able to print a table using the Records controller that
will display child records dependent on a specific date/account. So I
need a condition from more than one table.

Can anybody help?

I would assume you could use the :joins option of the paginate method to
get
the tables you want. I’m not sure I understand you data structure
though.
Do you have a Record object that has a date_id property that is a
foreign
key to Date.id and an account_id that is a foreign key to Account.id?
So
then I think this would do it:

@record_pages, @records = paginate :records, :per_page => 10,
:joins => [“dates”,“accounts”],
:conditions => ["dates.id = ? and accounts.id = ? ", date_id,
account_id]

Paul B. wrote:

I would assume you could use the :joins option of the paginate method to
get
the tables you want. I’m not sure I understand you data structure
though.
Do you have a Record object that has a date_id property that is a
foreign
key to Date.id and an account_id that is a foreign key to Account.id?
So
then I think this would do it:

@record_pages, @records = paginate :records, :per_page => 10,
:joins => [“dates”,“accounts”],
:conditions => ["dates.id = ? and accounts.id = ? ", date_id,
account_id]

Fantastic. You’re an absolute star. That works great - thank you.

Doug B. <doug.bromley@…> writes:

Hi

I’m wondering if there’s a way I can gather data from multiple tables
from the child table by using the paginate method?

Hi Doug,

did you get the solution for that? I’m with the same problem.

Doug B. <doug.bromley@…> writes:

Hi

I’m wondering if there’s a way I can gather data from multiple tables
from the child table by using the paginate method?

look up this link:

http://tinyurl.com/juec9

I will try the :include option to try to solve it.
That’s only work for rails 1.1.

Just 1 database query for all of this:

authors = Author.find(:all, :include => [
{ :posts => :comments }, :categorizations ])

authors[0].posts[0].comments[0].body # => “Rock on Rails!”
authors[0].categorizations[0].name # => “Less software”