【问题标题】:Rails app datetime search using Ransack gem使用 Ransack gem 的 Rails 应用程序日期时间搜索
【发布时间】:2021-08-10 08:29:00
【问题描述】:

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

我目前正在使用 rails datetime_field_tag 但是我似乎无法使其与 ransack 一起使用,人们可以选择以小时和分钟为单位的日期,然后是 AM 或 PM。

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

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

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

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

【问题讨论】:

  • 你必须有上午/下午吗?好像09 vs 21应该够了吧?并请分享您的相关代码并指定哪些地方不起作用。

标签: ruby-on-rails ruby datetime ransack


【解决方案1】:

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

例如

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

【讨论】:

    最近更新 更多