Лучшая практика для определения констант и их повсеместного использования в контроллерах с использованием Ruby на Rails - PullRequest
0 голосов
/ 29 января 2020

Я хочу определить постоянную по умолчанию TIME_NOW и использовать ее во всех местах, где мне нужно в контроллерах. Я знаю, что объект DateTime Time.now.utc - 5.hours даст мне восточное стандартное время, и я хочу определить эту константу как TIME_NOW где-то в ApplicationController. Что было бы лучшим способом сделать это?

Ответы [ 2 ]

5 голосов
/ 29 января 2020

Я бы сказал, что время не является постоянным.

Почему бы вам просто не определить метод, возвращающий текущее время вашего предпочтительного часового пояса Что-то подобное в вашем ApplicationController может работать:

def time_now
  Time.current.in_time_zone('EST')
end
2 голосов
/ 29 января 2020

Может быть что-то вроде этого в ApplicationController

def time_now
  Time.now.in_time_zone('Eastern Time (US & Canada)')
end

Или более гибкий

def time_now_in_zone(zone)
  Time.now.in_time_zone(zone)
end

def eastern_time_now
  time_now_in_zone('Eastern Time (US & Canada)')
end

И вы можете вызывать эти методы во всех контроллерах, потому что они являются потомками ApplicationController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...