private method in controller

Hi!

I have two controllers. Number one has this private method:

private

  def clean_balance_cache     #Expire the cache for the module right     expire_fragment(:controller => 'application', :action => 'balans')   end

Is there a way I can call this method in controller #2? I tried adding this method to the application helpers. But that didn't work. expire_fragment can't be used in a helper. It's an unknown method there.

Thank in advance!

LeonB schrieb:

Hi!

I have two controllers. Number one has this private method:

private

  def clean_balance_cache     #Expire the cache for the module right     expire_fragment(:controller => 'application', :action => 'balans')   end

Is there a way I can call this method in controller #2? I tried adding this method to the application helpers. But that didn't work. expire_fragment can't be used in a helper. It's an unknown method there.

Thank in advance!

>

Hi Leon,

just write a small lib, for example

./lib/cache_helper.rb:   # can be used everywhere...   module CacheHelper     def self.expire_balance_cache(controller)       controller.expire_fragment(:controller => 'application',                                  :action => :balance)     end     # or as instance method     def expire_balance_cache       expire_fragment(:controller => 'application',                       :action => :balance)     end   end

./app/controllers/balances_controller.rb   include CacheHelper # unless you want to keep your controller clean

  def update     #...     if self.kind_of? CacheHelper       # do this if you included CacheHelper       expire_balance_cache     else       # do this to keep your controller clean       CacheHelper.expire_balance_cache(self)     end     #...   end

Regards Florian

Thanks Florian! Gonna try that.