Instance Var Scope in Modules ?

I've created a module to include in a Controller. Basically it works,
but I am expecting methods in the module to have access to instance
variables from the controller, and that appears to not be the case.
Yet, a simple Ruby example says it should be. I'm not sure what's
different.

Simple Example:

    module ShapeStuff
      def set_type
        @type = 'circle'
      end
    end

    class Shape
      include ShapeStuff
      attr_accessor :type
      def initialize
        @type = 'square'
      end
    end

    x = Shape.new
    puts x.type # 'square'

    x.set_type
    puts x.type # 'circle'

My distilled Rails example would be something like this. I require
the file in environment.rb.

    module EventControls
      def change_test_var
        @test_var = 'y'
      end
    end

    class UsersAdminController < ApplicationController

      include EventControls
      layout '1col_admin'
      attr_accessor :test_var

      def some_action
        @test_var = 'x'
        change_test_var
      end
    end

Using debug(@test_var) the value doesn't ever appear to change from 'x'

Additionally, I expected session to be available to the module
methods too, but it isn't.

Confused...

-- gw

My distilled Rails example would be something like this. I require
the file in environment.rb.

   module EventControls
     def change_test_var
       @test_var = 'y'
     end
   end

   class UsersAdminController < ApplicationController

     include EventControls
     layout '1col_admin'
     attr_accessor :test_var

     def some_action
       @test_var = 'x'
       change_test_var
     end
   end

I would expect this to work, and in a quick experiment it did. Is
there any more to your example ?

Fred

Hmmm, well there must be. I haven't been able to see what more my actual code does, but I'll go back and have a closer look. I just needed a sanity check that this should work before I start tearing it down section by section (at this point it's quite a bit of code). Thx.

-- gw