2017-03-20 2 views
1

Ich versuche die Stunden zwischen Startzeit und Endzeit für ein Ereignis zu berechnen und wenn ein Benutzer sich für ein Ereignis anmeldet, geht es in Richtung seiner Ziele. Im Moment scheint die Methode zu funktionieren, außer ich bekomme eine negative Zahl. Ich gehe davon aus, es ist etwas mit dieser CodezeileBerechnen der Stunden zwischen Startzeit und Endzeit

h = ((event.start_time - event.end_time)/1.hour).round 

Hier ist mein gesamte Controller für dieses Modell zu tun Hoffnung, jemand kann mir helfen, mit dieser heraus.

class UserEventsController < ApplicationController 

    def create 
    event = Event.find(params[:id]) 
    current_user.events << event 
    hours = 0 
    goals = current_user.goals 
    current_user.events.each do |event| 
     h = ((event.start_time - event.end_time)/1.hour).round 
     hours += h 
     current_user.update_attributes(hours: h) 
    end 



    redirect_to organization_path(event.organization) 
    end 
end 

Antwort

1

Ich glaube, Sie Ihre Zeiten haben nach hinten:

h = ((event.end_time - event.start_time)/1.hour).round 

Es sei denn, Ihre Veranstaltung endet, bevor es das beginnt negative Werte erzeugt hätte. Wie wenn es um 4 begann und um 6 endete, wäre das 6-4 oder 2 Stunden, nicht 4-6.

+0

das ist perfekt! ich danke dir sehr ! – Amena

Verwandte Themen