Thanks, Sergio! That worked perfectly.

What I did:

sudo gem install rails   (installed 2.3.2)
changed "controllers/application.rb" => "controllers/ 
application_controller.rb"
update enbvironment.rb: RAILS_GEM_VERSION = '2.3.2' unless defined?  
RAILS_GEM_VERSION
fixed test_helper.rb: class ActiveSupport::TestCase

nuked the current active_scaffold in vendor/plugins, and cloned a new  
one from github:

git clone git://github.com/activescaffold/active_scaffold.git

and reverted all my previous weak attempts at correcting the  
cache_classes problem.

Now, all is good. Can do  rake db:migrate RAILS_ENV=test even with  
config.cache_class=true



On 13/07/2009, at 7:36 PM, Sergio Cambra .:: entreCables S.L. ::. wrote:

>
> On Lunes, 13 de Julio de 2009 09:12:04 David Parry escribió:
>> 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 .
>
> Are you using rails 2.2? There was a problem with some plugins and  
> rake
> db:migrate with cache_classes enabled in rails 2.2, it was fixed in  
> 2.3
> You have some workarounds in issue 638:
> http://code.google.com/p/activescaffold/issues/detail?id=638&can=1&q=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?
>>
>>
>>
>>
>>
> -- 
> Sergio Cambra .:: entreCables S.L. ::.
> Mariana Pineda 23, 50.018 Zaragoza
> T) 902 021 404 F) 976 52 98 07 E) [email protected]
>
>
> 

--~--~---------~--~----~------------~-------~--~----~
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