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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bryan C. (Guest)
on 2009-04-16 00: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.photos, project.votes, etc with .active (much more work).

Which is the better method in the long run? Thanks guys.
Gavin (Guest)
on 2009-04-16 01:39
(Received via mailing list)
Makes sense just to add conditions to the associations

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

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 C. <removed_email_address@domain.invalid>
Matt J. (Guest)
on 2009-04-19 01: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 J.


On Apr 15, 4:58 pm, Bryan C. <removed_email_address@domain.invalid>
This topic is locked and can not be replied to.