我需要根据数据库中的记录设置config.time_zone
。在rails初始化块内部,我无法访问模型,因为它们尚未加载,我认为。
我尝试在没有模型的情况下使用下面的代码运行查询,但此时尚未建立连接。
require 'active_record'
timezone = ActiveRecord::Base.connection.execute
创建一个before过滤器并为每个请求设置Time.zone对我没有帮助。
有解决方法吗?
更新
想到把它放在environment.rb:
的末尾timezone = SiteConfig.find_by_attribute("timezone").attribute_value
zone_default = Time.__send__(:get_zone, timezone)
Time.zone_default = zone_default
ActiveRecord::Base.time_zone_aware_attributes = true
ActiveRecord::Base.default_timezone = :utc
代码是从rails初始化文件中提取的。