One way I might do this is to create a table-less model that serves as
a union model. You'll have to write a find_by_sql union query to
manually bring your different other models together into one generic
data model, and write your own finder method to encapsulate it. Use
the find_by_sql to generate particular columns to help determine which
model the record originally came from, so you can generate your links
correctly.

The benefit of doing it this way is that you can generate your
find_by_sql string on the fly with great specificity, but a really
complex query can be done as one query to the database. If you have
associations you need to bring in, this could get extremely
complicated really quickly, though. Or else you bring in your foreign
keys and make sure you plug any holes for the types that don't support
them.

The downside is that you lose ActiveRecord conditions, plus you have
to write a complicated union yourself. I haven't seen a union gem that
does multi-model selects. And again, be careful if you try to use AR
for associations.

There are other ways to do this DRYly, that may be better for your
situation. This is probably overkill. Maybe you just add some utility
methods to your individual models (perhaps through a mix-in to make it
DRY) to make it easier to generate your links more cleanly. Then you
plug the results into your individual finds into an array, and iterate
over that in your view to build the table.

View helpers?

On Mar 3, 6:56 am, RichardOnRails
<[email protected]> wrote:
> OK,  that was I bad idea because in creating the links I have to
> supply stuff specific to each model,  so I'm just coding them by
> hand.  I was just trying to be DRY.
>
> On Mar 2, 9:03 pm, RichardOnRails
>
>
>
> <[email protected]> wrote:
> > I'm adding a layout to my app that I found 
> > athttp://www.tutorialspoint.com/ruby-on-rails/rails-layouts.htm.
>
> > They have a piece that ultimately feeds data into a sidebar:
> > class BookController < ApplicationController
> >    layout 'standard'
> >    def list
> >       @books = Book.find(:all)
> >    end
>
> > I've got HomeController and I want to feed the names models I got,
> > e.g. Home, User, Vendor for now, more to come. So I want to generate
> > that list automatically.  Then I'll eliminate any I don't want or
> > suppress them all for a Logon page, etc.
>
> > Any ideas?
>
> > Thanks in advance,
> > Richard

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to