I have a Person model with a points attribute. For the most part,
points values will be incremented and decremented via user votes.
However, I'd also like to decrement a Person's points by half a point
each day.
How do I automatically decrement the value once per day?
Id suggest using a database job but you could always just store when you last decreased it date and then on sign in do the decrease. If you plan on showing other users the points you’d need the job.
Thanks for responding. Sorry if this is a dumb question, but what do
you mean by database job?
This is going to be a ranked list (current points value determines the
ranking), and I'd like users to be able to view the list without being
logged in.
I would use a scheduler for this kind of stuff. A pure ruby solution
is rufus scheduler:
http://github.com/jmettraux/rufus-scheduler
With rufus scheduler you can schedule a routine that runs every day at
a given hour and decrements every persons points by 0.5.