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