2016-04-28 2 views
1

Ich mag zukünftige Termine wie folgt berechnen:Rails: Berechnen Zeitkennung mit der Zeit in der Datenbank als „string“ gespeichert

Date.today + 1.year 
Date.today + 1.month 

Um zu bestimmen, ob das Datum in der Zukunft zu sein braucht month oder eine year in die Zukunft Ich fordere die duration aus einer Datenbank. Der Wert duration wird als Zeichenfolge gespeichert.

end_date = Date.today + 1.Duration.find(order.duration_id).duration 

Ich glaube, dass der obige Code ausführt, wie folgt:

Date.today + 1."year" #the quotes cause an error 

Wie kann ich die Anführungszeichen entfernen?

Antwort

2

In Schienen funktioniert die Methode 1.year, :year ist eine Instanzmethode auf 1. In Rubin, eine beliebige Methode für ein Objekt zu bewerten, verwenden Sie nur send('method_name') oder send(:method_name)

Wenn Sie Ihre Dauer als String haben, können Sie :send bewerten die tatsächliche Dauer verwenden:

duration = "year" 
1.send(duration) == 1.year 
+0

Vielen Dank für die schnelle Antwort. Es klappt! –

Verwandte Themen