So ändern Sie, wie ActiveAdmin die Uhrzeit anzeigt (jedes Mal)

8

Da die Standardzeit in der Datenbank in utc ist, wollte ich in der Lage sein, sie immer noch in der richtigen Zeit des Benutzers anzuzeigen. Um dies zu tun, musste ich column :created_at nehmen und in folgendes umwandeln:

%Vor%

Scheint ziemlich einfach, ein- oder zweimal zu machen, aber wenn Sie jeden Index und jede Anzeigemethode überschreiben müssen, ist der Prozess ein wenig anstrengend.

Gibt es eine Möglichkeit zu überschreiben, wie ActiveAdmin die Zeit anzeigt, ohne jedes Vorkommen zu überschreiben?

Ich weiß, dass ich eine Funktion erstellen oder die Funktionen, die für die Zeit zur Verfügung gestellt werden, besser nutzen könnte, aber ich müsste sie jedes Mal verwenden, wenn ich die Zeit anzeigen möchte. Ich möchte es außer Kraft setzen, ohne mir Sorgen zu machen. Ich habe einen vermisst.

    
Tom Prats 24.07.2013, 22:08
quelle

3 Antworten

4

Ich habe herausgefunden, dass es zwei Möglichkeiten gibt, dies zu tun:

1. Javascript

Dies ist die einfachere Methode, da sie sehr kurz ist und kein db-Feld hinzufügt. Es funktioniert, weil es die Zeitzone des Benutzers von ihrem Browser verwendet. Diese Antwort gibt einen Einblick, wie das geht.

2. Aus der Datenbank

Dieser Prozess kann in diesem Railscast gefunden werden.

Speichern Sie im Wesentlichen ein time_zone-Feld in der Benutzertabelle. Verwenden Sie dann einen before_filter (obwohl ein um_filter möglicherweise eine bessere Idee ist), um die Zeitzone im Controller festzulegen.

%Vor%     
Tom Prats 25.07.2013, 17:29
quelle
15

Sie können nur ActiveAdmin als Ziel verwenden, indem Sie angeben, dass immer ein bestimmter Filter in config/initializers/active_admin.rb verwendet werden soll, indem Sie eine Zeile wie folgt hinzufügen:

%Vor%

(oder config.before_filter :set_admin_timezone für Versionen von Rails vor Rails 4)

Dann können Sie in Ihrem ApplicationController einfach die Methode set_admin_timezone definieren und ActiveAdmin wird sie verwenden. Zum Beispiel:

%Vor%

Sie sollten den aktuellen Admin-Benutzer in dieser Methode nachschlagen können (um ihre bestimmte Zeitzone zu erhalten), aber ich habe das nicht versucht.

    
Melinda Weathers 01.04.2014 16:06
quelle
2

Also für mein Verständnis brauchen Sie zwei Dinge:

  1. Ortszeit / Zeitzone

    Sie können dies erreichen, indem Sie die richtige Zeitzone Ihrer Rails-App festlegen, die active_admin übernimmt diese standardmäßig. Zum Beispiel in Ihrer Rails-Konfigurationsdatei (config / application.rb):

    config.time_zone = 'Eastern Time (USA & Kanada)'

  2. Standardzeitformat

    Sie können diese Standardformatierung für Datumsangaben im aktiven Administrator ändern

Viel Glück ~

    
Mike Li 25.07.2013 05:15
quelle