You shouldn''t do this from the filter in the controller. It''s
skating on the
edge of breaking MVC.
Make your own model
class MyBase < ActiveRecord::Base
def before_save
end
def before_update
end
def before_create
end
end
Then inherit any of your models from that.
If you wanted to do this from outside of the model (which I don''t think
is
good because you are tying models to controllers) you could experiment with
disabling the callbacks on an instance of your model by using a module. I
have not tested this at all... just writing this off the top of my head.
lib/disable_callbacks.rb
module DisableCallbacks
def before_save
end
def before_update
end
def before_create
end
end
environment.rb
require ''disable_callbacks''
your controller''s filter
def increment_page_view
include DisableCallbacks
@my_model = MyModel.find :first
@my_model.extend DisableCallbacks
end
Does any of that make sense?
On 8/8/06, Lachlan Laycock <supagroova@gmail.com>
wrote:>
> Does anyone know how to disable a model''s callbacks?
>
> I have a routine that increments a page_view counter for various model
> objects in an after_filter in my ApplicationController. I call this:
> increment_page_view()
>
> Rather that checking through the trace array in each model callback for
> "increment_page_view" I''d rather disable the callbacks
from inside
> increment_page_view() itself.
>
> Seems like it should be possible, but don''t seem to be able to
work it
> out.
>
> Anybody done this or have ideas on how to do it?
>
> Thanks :-)
>
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Rails mailing list
> Rails@lists.rubyonrails.org
> http://lists.rubyonrails.org/mailman/listinfo/rails
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
http://wrath.rubyonrails.org/pipermail/rails/attachments/20060809/fd439ff0/attachment.html