Share controller method when rendering partial

Hi,
I have a question regarding rendering partials:

I have this controller called twitter

class TwitterController < ApplicationController

  def index
    @twitter_search = Twitter::Search.new('#rails')
  end
end

In the twitter index views i render a partial:

<%= render :partial => "shared/twitterlist" %>

This work's fine for the Twitter index view, but when I call the
render partial from another view like dashboard/index like this:

<%= render :partial => "shared/twitterlist" %>

I get this error:

You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each

What am I doing wrong here?
Is it even possible to share data across the views like that?

Robert Walker wrote:

Keep in mind that instance variables set in controllers are only
available for one request/response cycle. Any data you need for a view
you should assign in the controller action used to render the view.

Also remember that before_filter can be used in cases where you need to
load data for multiple actions within a controller. This will help keep
your code DRY.

Thanks Robert,
But one question.
Where do I put the code called by an :before_filter
In the application_controller ?

If I’m not mistaken, you have TwitterController and a DashboardController. You could have a before_filter (to set @twitter_search) in each of these for the methods that result in the partial being rendered. I suppose you could also have a before_filter in the ApplicationController, but not sure that’s the best idea.

Euwyn

But where shhould the method live? In the Application controller?

def twitter_search
   ...
end