Как мне добавить конфигурацию часового пояса в мой файл environment.rb?

#ruby-on-rails #timezone

#ruby-на-рельсах #Часовой пояс

Вопрос:

Во-первых, в чем разница между настройкой в моем файле application.rb и в моем файле environment.rb?

Я прочитал, что мне нужно настроить часовой пояс по умолчанию в моем файле environment.rb. Хотя я не совсем уверен, как это сделать. Пока что у меня есть это в моем файле environment.rb:

 # Load the rails application
require File.expand_path('../application', __FILE__)

# Initialize the rails application
SampleApp::Application.initialize!
  

Нужно ли мне повторно запускать rails-сервер после внесения изменений? Какие-нибудь дополнительные шаги?

Спасибо!

Ответ №1:

В rails 2 именно environment.rb имел всю конфигурацию. В rails 3 он изменен на application.rb, а также environment/production.rb и environment/development.rb и Gemfile. Чтобы настроить часовой пояс, поместите это в application.rb в классе Application:

 class Application < Rails::Application
  config.time_zone = 'Eastern Time (US amp; Canada)'
end
  

Вы можете запустить rake time:zones:all , чтобы просмотреть список доступных часовых поясов.

редактировать В rails 3 вам не нужно касаться environment.rb.

Ответ №2:

Из процесса инициализации Rails (3):

1.14 config/environment.rb

Этот файл является общим файлом, требуемым config.ru (сервер rails) и пассажир. Здесь встречаются эти два способа запуска сервера; все, что было до этого момента, было настроено в стойку и на рельсы.

Этот файл начинается с запроса config/application.rb.

1.15 config/application.rb

Для этого файла требуется config/boot.rb, но только если это не требовалось ранее, что было бы в случае с rails server, но не в случае с Passenger.

Затем начинается самое интересное!

Чтобы настроить часовой пояс вашего приложения, добавьте это в свой application.rb:

 class Application < Rails::Application
  # ...

  config.time_zone = 'Pacific Time (US amp; Canada)' # for example

  # ...
end
  

И, как указывает @bricker, rake time:zones:all отображает все доступные часовые пояса.