Ich habe eine Rails App mit mehreren Namaspaces wie Benutzer, Management, Admin. was bedeutet, ich habe current_user, current_management, current_admin.rails Zeitzone in mehreren Benutzer-Namespaces behandeln, auch wie funktioniert around_action?
Wie sollte ich die Zeitzoneneinstellungen für diese verschiedenen Benutzer-Namespaces behandeln. Ich lese das (https://robots.thoughtbot.com/its-about-time-zones), aber es zeigt current_user. Was soll ich mit current_management machen?
Was macht "around_action" in diesem Kontext? Wenn der Benutzer die Zeitzone aktualisiert, was passiert, oder sollte ich etwas explizit einstellen?
wenn ich die zeit anzeigen, sollte ich immer in_time_zone tun? wenn ich das tun muss, warum muss der Application Controller Code?
https://robots.thoughtbot.com/its-about-time-zones
hier ist ein Code, es Anforderung in Anwendungssteuerung setzen
# app/controllers/application_controller.rb
around_action :set_time_zone, if: :current_user
private
def set_time_zone(&block)
Time.use_zone(current_user.time_zone, &block)
end
sagt es wie dieses
<%= time.in_time_zone(current_user.time_zone) %>
danke für deine antwort. Also wird around_action dazu führen, dass die gesamte App die Zeitzone verwendet? also muss ich auf jedem display in_time_zone verwenden? Ich mochte das tatsächlich (https://gist.github.com/anonymous/7ea8dd867c8ccb2c802470a01858e014) und ich denke, es funktionierte, aber nicht sicher, die Nebenwirkungen davon, da ich auf meinem eigenen einen Benutzer ausgeführt habe, nicht versucht, die Auswirkungen mehrerer Benutzer – Axil
@Axil 'around_action' wirkt sich nur auf den Controller-Code und die Aufrufe aus und auf alles, was darin aufgerufen wird. Die Zeitzone für die gesamte App wird nicht global geändert. Sie müssen 'in_time_zone' nicht verwenden, wenn Sie' Time.use_zone' für Datenbankobjekte verwenden, da der aktive Datensatz sie in die aktuelle Zeitzone konvertiert. – Bartosz
ok das heißt mein Code ist gut? – Axil