Searchlogic 的作者说它被委托给 A::R 转换器,但至少在我们的情况下,这并没有涵盖通常的情况。本地时间被“解释”为 UTC,因此移动了一小时 (CET)。
我怎样才能正确地做到这一点?
我添加了我们当前的解决方法作为答案,希望它对某人有所帮助!
Searchlogic 的作者说它被委托给 A::R 转换器,但至少在我们的情况下,这并没有涵盖通常的情况。本地时间被“解释”为 UTC,因此移动了一小时 (CET)。
我怎样才能正确地做到这一点?
我添加了我们当前的解决方法作为答案,希望它对某人有所帮助!
我们在应用程序控制器中添加了以下方法:
protected
def parse_datetime_fields(hash, key)
value = hash[key]
return unless value
hash[key] = Time.zone.parse(value)
end
然后在创建 searchlogic 对象之前,我们“预处理”参数哈希:
if params[:search]
parse_datetime_fields(params[:search], :begin_greater_than)
parse_datetime_fields(params[:search], :begin_less_than)
end
@search = Record.search(params[:search])
非常感谢任何更清晰更好的解决方案/想法:)!
我们的环境.rb:
config.time_zone = 'Bern'
config.active_record.default_timezone = :utc