Rails 使用 Ransack 进行应用日期时间搜索 gem

Rails app datetime search using Ransack gem

我正要实现一个搜索功能,用户可以在其中过滤日期时间列。

我目前正在使用 rails datetime_field_tag 但是我似乎无法让它与 ransack 一起工作,人们可以选择一个以小时和分钟为单位的日期,然后是上午或下午。

用户可以按以下格式输入日期时间:dd/mm/yyyy hh:mm AM/PM

我正在搜索的列是日期时间格式,例如:2021-05-12 09:09:48

实施此方法的最佳方法是什么?洗劫与否?如何?
这是我第一次用 ransack 实现日期时间搜索功能,

我尝试在线搜索,但似乎找不到好的解决方案。 谢谢。

如果您从参数中接收到字符串格式的日期时间并直接将其传递给 ransack,那么您应该先将该字符串转换为 24 小时格式的字符串(也可以使用 db 格式),然后再将其传递给洗劫。

例如

query_value = Time.zone.parse(params[:created_at_filter]).to_s(:db)
Person.ransack(created_at_eq: query_value)