controller member variables

I'm failing to see why a member variable in my controller won't keep
it's value. Here's the setup:

editor_controller.rb:

...
  def index
    display_loops
  end

  def mytoggle
    @show_loops = !@show_loops
    redirect_to :action => "index"
  end
...

index.rhtml:

<h3>
<% if @show_loops %>
  <% link_to "Hide Loops", { :action => "mytoggle" } %>
<% else %>
  <% link_to "Show Loops", { :action => "mytoggle" } %>
<% end %>
</h3><br />
...

When this HTML is rendered and i click on "Hide Loops", the
@show_loops variable does get toggled from false to true, but when it
gets redirected back to index, the variable is back to false. Am I
missing something obvious?

Rails controllers are not kept around. When a request comes in, a new instance of the controller is made for that request only. Controller instance variables are mainly used for flagging what data is to be available in the view. If you need data to persist across requests, you’ll need to put it in the session.

Jason

got it. thanks!