Forum: Ruby on Rails Associations, named_scope, and "active" records

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
98f7f49eca94a17d8ac4c61ee5700249?d=identicon&s=25 Bryan Corey (mrpunkin)
on 2009-04-15 22:58
Hello all,

We are converting our application so that user-generated content such as
votes, photos, users, comments, etc are all disabled instead of deleted.
This serves us better as administrators of the site as well as fits into
a UI redesign coming later that will include undo functionality. The
question I have is would it be better to place the active=true condition
part of all my associations I already have in place (little work), or do
I strip my associations down to barebones and build named_scopes for my
"active" state, and any other states? The problem here is I would need
to append nearly all calls to photo.votes, photo.comments,, project.votes, etc with .active (much more work).

Which is the better method in the long run? Thanks guys.
648a71a35ce6e4a1c5cd63451a2a20df?d=identicon&s=25 Gavin (Guest)
on 2009-04-15 23:39
(Received via mailing list)
Makes sense just to add conditions to the associations

class Photo
  has_many :votes, :conditions => ['active = ? ', true]

I presume this is what you're planning on doing at the moment?

Less work and I doubt the scope would perform noticeably better (if at
all) ?

Why not try both methods and check the speed of each query?

On Apr 15, 9:58 pm, Bryan Corey <>
6883e5ef03484d4fcef507d7b4f1d243?d=identicon&s=25 Matt Jones (Guest)
on 2009-04-18 23:39
(Received via mailing list)
I'd suggest that you take a look at acts_as_paranoid for some ideas to
implement this without scattering checks all over the application.
Also dig around for a discussion on re-implementing acts_as_paranoid
with default_scope.

--Matt Jones

On Apr 15, 4:58 pm, Bryan Corey <>
This topic is locked and can not be replied to.