Searchlogic无法正确转换日期时间条件的时间

时间:2010-02-17 13:31:55

标签: timezone searchlogic

Searchlogic的作者说它被委托给A :: R转换器,但至少在我们的例子中,这并没有涵盖通常情况。当地时间被“解释”为UTC,因此被移动了一个小时(CET)。

我该如何正确地做到这一点?

我将当前的解决方法添加为答案,希望它可以帮助某人!

1 个答案:

答案 0 :(得分:1)

我们已将以下方法添加到应用程序控制器:

  protected
  def parse_datetime_fields(hash, key)
    value = hash[key]
    return unless value
    hash[key] = Time.zone.parse(value)
  end

然后在创建searchlogic对象之前,我们'预处理'params hash:

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