We are having a problem with

        config.cache_classes = true

and ActiveScaffold.

We are using acts_as_audited to produce audit logs of changes in our  
models. The audits log itself is (of course) being rendered with  
ActiveScaffold.

The problem we are seeing is that in the test (and therefore  
production) environments, because cache_classes is on (for speed),  
somehow a cyclic dependency has crept in such that the audits  
controller is needed to be loaded at Rails Initilization, which is  
needed to run rake db:migrate .

The failure occurs because the audits table hasn't been created yet  
because we're doing a db:migrate and nothing has been created yet.

The reason the audits table is being accessed is because active  
scaffold is being called in the usual block at the class level... e.g:

class AuditsController < ApplicationController
   active_scaffold :audit
...
end


If we turn config.cache_classes off (as in development) then this  
works fine. Turn it on, and it tries to access the audits table.

Is there a way to call "active_scaffold :audit" NOT at the class  
initialization level? I tried adding a method that calls  
"active_scaffold :audit" as a before_filter but it seems to be  
unavailable to my controller. Which is odd, because if I step through  
the code during a rake db:migrate RAILS_ENV=test, then the method  
"active_scaffold" is clearly available to be called. When I try to  
call it later (after the class has been loaded) then it's no longer  
there.


Is there another way to initialize active_scaffold for a controller?




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"ActiveScaffold : Ruby on Rails plugin" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/activescaffold?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to