Searchlogic の作成者は、A::R コンバーターに委任されていると述べていますが、少なくとも私たちの場合、これは通常のケースをカバーしていませんでした。現地時間は UTC として「解釈」されたため、1 時間 (CET) ずれました。
どうすればそれを適切に行うことができますか?
現在の回避策を回答として追加します。誰かの役に立てば幸いです。
Searchlogic の作成者は、A::R コンバーターに委任されていると述べていますが、少なくとも私たちの場合、これは通常のケースをカバーしていませんでした。現地時間は UTC として「解釈」されたため、1 時間 (CET) ずれました。
どうすればそれを適切に行うことができますか?
現在の回避策を回答として追加します。誰かの役に立てば幸いです。
アプリケーションコントローラーに次のメソッドを追加しました。
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