In my local development environment I define a class variabel
@@has:flock? in a modele that is included in controllers so I can
reset this variable in each controller that has to change it
The code in the module is
module CrudActions
@@page_records=15
@@has_flock = true
def index
if @@has_flock : paginate_conditions=[‘flock_id=?
‘,current_user.flock.id]
else paginate_conditions=’’ end
…and in the controller
class DiswebUsersController < ApplicationController
include CrudActions
@@page_records=15
…
That works fine locally but when I deploy the application and use an
apache server it does not work anymore (@@has_flock? is false) in the
method index
Then the variable is not set in the module
Any idees of what is happening ?
I can fix it by defining a method, but I wauld like to know if that is
necessery
Any help is appreciate?
Hi Hans,
processes don’t know each other and i.g. you can’t control which
instance of
your Application responds to the next request, this means:
Apache (T=0)
|
- < Application (Process 0)
| @@flock = nil
|
|
-
Fork’d Application (Process 1)
| @@flock = nil
|
-
Fork’d Application (Process 2)
@@flock = nil
Apache (T=1)
|
- < Application (Process 0)
| @@flock = nil
|
|
-
Fork’d Application (Process 1)
| @@flock = nil
|
-
Fork’d Application (Process 2) < - REQUEST 1 200
@@flock = nil
Apache (T=2)
|
- < Application (Process 0)
| @@flock = nil
|
|
-
Fork’d Application (Process 1) < - REQUEST 2 500
| @@flock = nil
|
-
Fork’d Application (Process 2)
@@flock = true
If you use Mongrel or Thin whereas only a single Process for your
application
exists the class variable is always the same.
Thin (T=0, Process 0)
|
- <> Application
@@flock = nil
Thin (T=1, Process 0)
|
- <> Application < - REQUEST 1 200
@@flock = nil
Thin (T=2, Process 0)
|
- <> Application < - REQUEST 2 200
@@flock = true
Regards
Florian
Am 14.09.2009 um 11:33 schrieb Hans: