#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
отображает все доступные часовые пояса.