On Mar 4, 10:30 am, onion wushu <[email protected]> wrote:
> Hi everybody !
>
> I'm trying to extend the class ApplicationController with a plugin to
> add filters to follow some executions. I don't know why, but I observed
> a weird behaviour and I don't know why. Here is my code.
>
> init.rb
> =========
> require 'myplugin'
>
> myplugin.rb
> ============
> ApplicationController.class_eval do
>   before_filter do
>     puts "I'm in the before_filter"
>   end
> end
>
> The things is this filter happens just the first time (the first action
> after Webrick is loaded). Well, I tried to do the same thing, extending
> ActionController::Base, and it works without problems. But I'd like to
> extend ApplicationController and not the Base.
>

In development mode your code gets reloaded between requests - the
reloaded application controller class doesn't have this filter added
to it.

One way of working around this is for your plugin to add a method to
base (eg add_my_filter) and call that from whichever controllers use
it.
There is also a hook ( config.to_prepare ) that it called before each
request in development mode

Fred

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" 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/rubyonrails-talk?hl=en.

Reply via email to