I’m working on an app for collectively writing stories and I have most
of the basic functions done. Users can create Universes that act as
containers for Characters, Locations, and Events. Characters have
Experiences of those Events. Universes start out completely private,
but the creator can grant three levels of access to other users. I
keep track of who created a Universe, who create a resource within
that universe, and who last made changes to that resource.
I would like to have some way to notify users of what has changed
since they last logged in. What records have changed, etc. I thought
about going the email route, but I don’t think I want to do that since
many small changes could cause many emails to be sent for the same
thing, though eventually this might be the best choice. I’m thinking
about maybe making a model that belongs to :user, that keeps track of
changes, and using Observers to update the table. But I’m not really
sure of the best way to do this. I could probably set up a cron job to
crawl that table once a day and send emails to each user, that way I
don’t have multiple emails per user per day. I wonder what systems
have other people used and what pitfalls have you run into?