0

Searchlogic の作成者は、A::R コンバーターに委任されていると述べていますが、少なくとも私たちの場合、これは通常のケースをカバーしていませんでした。現地時間は UTC として「解釈」されたため、1 時間 (CET) ずれました。

どうすればそれを適切に行うことができますか?

現在の回避策を回答として追加します。誰かの役に立てば幸いです。

4

1 に答える 1

1

アプリケーションコントローラーに次のメソッドを追加しました。

  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])

より明確でより良いソリューション/アイデアは非常に高く評価されています:)!

私たちのenvironment.rb:

  config.time_zone = 'Bern'
  config.active_record.default_timezone = :utc
于 2010-02-17T13:38:08.630 に答える