application.html.erb problem

You shouldn't be making database calls from the view. If you're making calls for the application layout then I'd add these to the application controller and call them with a before_filter (anyone know a better way ?)

If the objects you are calling are the same from one page to the next you could try using an "or equals"

so instead of always calling @current_user = User.find session[:user_id]

you could write @current_user ||= User.find session[:user_id]

This should mean that the database call is only made if @current_user is nil

does that help?

Gavin Morrice wrote:

You shouldn't be making database calls from the view. If you're making calls for the application layout then I'd add these to the application controller and call them with a before_filter (anyone know a better way ?)

If the objects you are calling are the same from one page to the next you could try using an "or equals"

so instead of always calling @current_user = User.find session[:user_id]

Instance variables (@current_user) don't survive from request to request, so a lookup will be done for every request (in other words, from one page to the next). You could save these objects in your session and if you store sessions in memcached, things will speed up and no queries to the db will be needed. To speed up things, caching is a good thing. There are loads of tutorials about this and it caveats.

you're right Wouter- that was dumb of me

Gavin Morrice wrote:

You shouldn't be making database calls from the view. If you're making calls for the application layout then I'd add these to the application controller and call them with a before_filter (anyone know a better way ?)

If the objects you are calling are the same from one page to the next you could try using an "or equals"

so instead of always calling @current_user = User.find session[:user_id]

you could write @current_user ||= User.find session[:user_id]

This should mean that the database call is only made if @current_user is nil

does that help?

On Apr 20, 1:33?pm, Preethi Sivakumar <rails-mailing-l...@andreas-

Thanks for your response. But, Am not making any db calls from view. I've helpers for everything which renders some tabs for user depending on his view. The queries for fetching the permissions that the person has and everything is fectched from db everytime the page is loaded even though that part of the layout is static once it is fectched for the first time. It gets refreshed everytime. That is the problem. i want only part of my page to be refreshed and other parts to remain static once loaded. How to achieve that?

You could either avoid traditional navigation and use ajax to update bits of the page as required or use fragment cacheing to cache the bits of html that are expensive to render or cache the data that sits behind that.

Fred