On 18 September 2011 01:49, maskiran <[email protected]> wrote: > When I access the photos.all, I can get the user email by > photos.first.user.email > > 1) Am I violating MVC here ?
No you're not, as it's the model (via ActiveRecord) doing the query - that's exactly how you're supposed to do it :-) (but do try to avoid directly accessing models in views; don't do "Photos.first.user.email" in an erb file... have @photos populated from the controller so you can call @photos.first.user.email 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 As Walter says, :include the :user in the photos query to eagerly load them. This way Rails will do the DB join and return all the data for you. -- 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.

