2016-11-04 1 views
0

Meine Anwendung enthält mobile Ansichten mit Gmail-Stil-Divs. Jedes Div hat ein Thema, einen Namen und ein Fälligkeitsdatum.RoR: Wie wird ein Fälligkeitstag anstelle des Fälligkeitsdatums angezeigt?

Die Fälligkeitsdatum-Spalte ist ein normaler Datetime-Wert.

Was ich schauen möchte ist, dass die ersten Einträge in der Ansicht als Tage für die letzten 6 Tage angezeigt werden und dann der Rest als Datetime angezeigt wird.

Zum Beispiel:

Mon Di Mi Mi Do Fr 2016/11/04 2016/11/03 .....

usw.

Wie kann dies am besten erreicht werden? Ich glaube nicht, dass ich Code für diese Frage schreiben muss, aber ich werde es bei Bedarf tun.

Danke!

EDIT

Problem ...

Im Hinblick ...

<font size="1"><strong>Due:</strong> <%= homework.formatted_date(due) %></font>&emsp;&ensp; 

In Application ... (nicht sicher, ob ich Syntax korrekt haben ...)

helper_method :formatted_date 

def formatted_date(due) 
    if (Date.today - due).abs < 6 
    due.strftime('%A') 
    else 
    due.strftime('%Y/%m/%d') 
    end 
end 

Die Ansicht lädt, aber die Daten zeigen dasselbe wie Befo re ...

Antwort

2

einen Helfer für Ihre Ansicht machen ... steckte es in Application

helper_method :formatted_date 

def formatted_date(item_date) 
    if (Date.today - item_date).abs < 6 
    item_date.strftime('%A') 
    else 
    item_date.strftime('%Y/%m/%d') 
    end 
end 

dann Ihrer Ansicht anstelle der object_date Feld zeigen formatted_date(object_date)

+0

Dank zeigt, habe ich in Ihrem Vorschlag genau in der Application Helper aber nicht definierte Methode 'helper_method 'für ApplicationHelper: Module. Aus meiner Sicht: <% = hausaufgabe.formatted_date (fällig)%> – Co2

+0

@ Co2 'helper_method' wird in * controllers * benutzt, um Methoden als View-Helfer zur Verfügung zu stellen, das brauchst du nicht wenn Ihre Methode in 'ApplicationHelper' definiert ist. –

+0

@SteveTurczyn Danke für Ihre Hilfe. Es funktioniert immer noch nicht, ich habe das OP aktualisiert. Vielleicht bin ich nicht richtig gefolgt? – Co2

Verwandte Themen