Forum: Ruby on Rails Calling multiple ERB files for different models from single ERB?

Posted by Dan Brooking (Guest)
on 2012-12-08 16:40
(Received via mailing list)
I imagine this is a pretty common thing so I'm assuming there is a 
"rails"
way to do this.

I have an index page for my app and when a user logs in, I am querying
various models to get lists of the objects associated with a user. I 
want
to display this stuff on the main page of the app, kind of like a 
dashboard.

So... basically, is there an easy way to call the index.html.erb 
associated
with one model from within another?  I've got the list of objects I'd 
want
rendered. How would I pass that in? From my searches, it seems like I 
can
create an ERB object, bind the var to that ERB object, and then render 
it.
 But was just wondering if that was the right way?

Thanks
Posted by Walter Davis (walterdavis)
on 2012-12-08 16:46
(Received via mailing list)
On Dec 8, 2012, at 10:39 AM, Dan Brooking wrote:

> I imagine this is a pretty common thing so I'm assuming there is a "rails" way 
to do this.
>
> I have an index page for my app and when a user logs in, I am querying various 
models to get lists of the objects associated with a user. I want to display this 
stuff on the main page of the app, kind of like a dashboard.
>
> So... basically, is there an easy way to call the index.html.erb associated with 
one model from within another?  I've got the list of objects I'd want rendered. 
How would I pass that in? From my searches, it seems like I can create an ERB 
object, bind the var to that ERB object, and then render it.  But was just 
wondering if that was the right way?
>
> Thanks

Have you read the Rails Guide on Views yet? There's a whole section on 
"partials" that I think would answer this for you neatly. If you've got 
multiple objects or collections already marshaled in your controller, 
you can pass them to the render call and specify a view partial (or let 
the conventions choose it for you) with something as simple as <%= 
render @my_collection %> or <%= render :partial => 'foos/bar', :object 
=> @baz %>

Walter
Posted by Dan Brooking (Guest)
on 2012-12-08 16:49
(Received via mailing list)
No I haven't... I'll give that a look. I'm really diving head first into
this reading things as I encounter issues.

I'll give it a read.  Thanks!!
Posted by Colin Law (Guest)
on 2012-12-08 17:29
(Received via mailing list)
On 8 December 2012 15:48, Dan Brooking <dmbrooking@gmail.com> wrote:
> No I haven't... I'll give that a look. I'm really diving head first into
> this reading things as I encounter issues.
>
> I'll give it a read.  Thanks!!

Also work right through a good tutorial such as railstutorial.org
(which is free to use online) so that you understand the basics of
Rails.

Colin
Posted by Dan Brooking (Guest)
on 2012-12-08 17:57
(Received via mailing list)
This is what I love about Rails/Ruby.  There is so much ease to do so 
many
things that when things start to look convoluted/hack-ish, it usually
indicated bad design.  In reading through the raisl guide and the rails
tutorial, I'm seeing just how poor some of my prior design decisions are
(and they appeared great at the time).
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.