This project is archived and is in readonly mode.
[PATCH] Add option to load default observers from app/models/*_observer.rb
Reported by Ravil Bayramgalin | December 25th, 2010 @ 03:26 PM | in 3.1
Currently, when using observers, we need to manually list all of them in environment configuration
# Activate observers that should always be running.
# config.active_record.observers = :cacher, :garbage_collector, :forum_observer
But we already have a default convention for naming observers - running "rails generate observer user" creates app/models/user_observer.rb. So why don't we add an option to automatically load observers named per convention.
My patch adds support for adding :default argument to list of observers which has the same effect as listing all observers from app/models/*_observer.rb
config.active_record.observers = :default
If you use non-conventional observers you can mix :default argument with them:
config.active_record.observers = :default, :garbage_collector
Patch - https://gist.github.com/754906 (includes documentation and tests)
Hope to get a feedback :)
Comments and changes to this ticket
-
Santiago Pastorino January 9th, 2011 @ 09:13 PM
- Milestone set to 3.x
- State changed from new to open
- Importance changed from to Low
Can you change that to allow
config.active_record.observers = 'app/models'
and
config.active_record.observers = :cacher, :garbage_collector, :forum_observer
so when you set observers as a string you call instantiate_observer of every *_observer.rb file
Also remember that you're coding in Active Model so references to Active Record are not welcome ;).
-
Santiago Pastorino January 15th, 2011 @ 01:58 AM
- Milestone changed from 3.x to 3.1
For the record we agreed on that ...
config.active_record.observer_path 'app/models/*_observer.rb' # default in railties
config.active_record.observer :cacher, :garbage_collector # in app, add two observers on top of defaults
config.active_record.observers = :cacher, :garbage_collector # in app, old style assignment explicitly sets these observers, clobbering defaultsold API would retain compatibility by wiping out defaults
-
Ravil Bayramgalin January 15th, 2011 @ 11:12 AM
So here are the new patches:
https://gist.github.com/780840 - [PATCH 1/3] Add observer_path method to load observers matching given pattern
https://gist.github.com/780842 - [PATCH 2/3] Replace ActiveRecord references in ActiveModel::Observing comments
https://gist.github.com/780843 - [PATCH 3/3] Update application.rb template to reflect observer changes -
José Valim January 21st, 2011 @ 10:16 AM
- State changed from open to wontfix
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>