Searchlogic не конвертирует время должным образом для условий даты и времени - PullRequest
0 голосов
/ 17 февраля 2010

Автор Searchlogic говорит, что он делегирован A :: R конвертеру, но, по крайней мере, в нашем случае это не охватывало обычных случаев. Местное время было «интерпретировано» как UTC и поэтому было перенесено на один час (CET).

Как я могу сделать это правильно?

Я добавляю наш текущий обходной путь в качестве ответа, надеюсь, он кому-нибудь поможет!

1 Ответ

1 голос
/ 17 февраля 2010

Мы добавили следующий метод в контроллер приложения:

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

И затем перед созданием объекта searchlogic мы «предварительно обрабатываем» хэш params:

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
...