Try :include => :user when you request the photos, and that will grab the user 
in the same request as the photo.

Walter

On Sep 17, 2011, at 8:49 PM, maskiran wrote:

> Hi
> I am new to rails and have a very simple scenario like mentioned here
> 
> table: photos
>    id:int
>    user_id:int
> 
> table: users
>    id:int
>    email:string
> 
> In the photos model i said it belongs_to :user
> 
> When I access the photos.all, I can get the user email by
> photos.first.user.email
> 
> If I want to display 100 photos on a page, the email is accessed as
> above it goes to the database at that time to get the value
> 
> 1) Am I violating MVC here as the database query is being sent (though
> not by me directly) in the view?
> 2) Since the query goes 100 times in the view, should there be a
> better way to get all the data at once in the controller/model and
> pass all that to the view.
> 
> I am coming from PHP world where I used to write queries and there I
> used to do a join on photos table and got all the data at once. Is
> this join costlier than getting data in each query as above
> 
> Thanks
> Kiran
> 
> -- 
> 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.
> 

-- 
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