Ponieważ domyślny czas w bazie danych jest w utc, chciałem móc nadal wyświetlać go we właściwym czasie. Aby to zrobić, musiałem wziąć column :created_at
i zmienić go w ten sposób:Jak zmienić sposób wyświetlania czasu przez ActiveAdmin (za każdym razem)
index do
...
column :created_at, :sortable => :created_at do |obj|
obj.created_at.localtime.strftime("%B %d, %Y %H:%M)
end
...
end
wydaje się dość łatwe do zrobienia raz lub dwa razy, ale gdy trzeba zastąpić każdą metodę index i pokazać, proces dostać trochę opodatkowania.
Czy istnieje sposób na przesłonięcie sposobu wyświetlania przez ActiveAdmin czasu bez konieczności przesłonięcia każdego wystąpienia?
Wiem, że mogłem utworzyć funkcję lub prawdopodobnie lepiej korzystać z funkcji przewidzianych dla czasu, ale nadal musiałbym go używać za każdym razem, gdy chcę wyświetlać czas. Chcę to zmienić, nie martwiąc się, że tęsknię.
Strefa czasowa będzie specyficzna dla każdego użytkownika, więc taka konfiguracja strefy czasowej nie zadziała –
Cóż, jeśli mówisz o czasie klienta, to 'obj.created_at.localtime.strftime ("% B% d, % Y% H:% M) 'nadal nie działa, ponieważ jest to nadal czas serwera, możesz wyświetlić czas klienta używając javascript –
Tak, powoli dochodzę do tej realizacji. Javascript to dobre połączenie, miałem już zamiar dodać pole do bazy danych, ale byłoby to niepotrzebne. –