Automatically decrement value each day

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?

Your help is greatly appreciated :slight_smile:

Becky

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.

On May 30, 2010 12:37 PM, “Becky Russoniello” [email protected]
wrote:

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?

Your help is greatly appreciated :slight_smile:

Becky

Posted via http://www.ruby-forum.com/.


You received this message because you are subscribed to the Google
Groups
“Ruby on Rails: Talk” group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected][email protected]
.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.

Hi Tim,

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.

Tim L. wrote:

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.

I would use a scheduler for this kind of stuff. A pure ruby solution
is 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.

no scheduler solution:

why not use created_at or updated_at?
simply get current date than compute days since your prefered event and
make
it half…

Wow! Perfect. Thank you so much.

Sharagoz wrote:

I would use a scheduler for this kind of stuff. A pure ruby solution
is rufus scheduler:
GitHub - jmettraux/rufus-scheduler: scheduler for Ruby (at, in, cron and every jobs)
With rufus scheduler you can schedule a routine that runs every day at
a given hour and decrements every persons points by 0.5.