ruby on rails - Building a penalty system for overdue library books - how do I keep account of the fines per user? -



ruby on rails - Building a penalty system for overdue library books - how do I keep account of the fines per user? -

when user has booking overdue, want give user penalty of £1 per day each overdue booking.

so far i've defined overdue booking 1 has booking_end datetime attribute less time.now , still has active boolean set true.

what right way approach penalty system? necessary create new table penalties? in case, how create fine increment per booking every day?

class booking < activerecord::base def overdue? due_date_absolute < time.now.strftime("%d %b %y") && self.active == true end def due_date_absolute self.booking_end.strftime("%d %b %y") end end

you shouldn't store info this, it's purely output of computation. calculate penalty in real-time each time need know it.

def overdue? due_date_absolute < time.now.strftime("%d %b %y") && self.active == true end def due_date_absolute self.booking_end.strftime("%d %b %y") end def overdue_rate 1.99 # $1.99 per day; hard-code or pull settings file, etc. end def fine # calculate number of days over-due, multiply overdue_rate overdue_rate * ((time.now - self.booking_end) / 1.days) end

ruby-on-rails ruby-on-rails-4

Comments

Popular posts from this blog

model view controller - MVC Rails Planning -

ruby on rails - Devise Logout Error in RoR -

html - Submenu setup with jquery and effect 'fold' -