ruby-on-rails - 使用 Ransack gem 的 Rails 应用程序日期时间搜索
问题描述
我正要实现一个搜索功能,用户可以在其中过滤日期时间列。
我目前正在使用 Rails datetime_field_tag
,但是我似乎无法使其与 ransack 一起使用,人们可以选择以小时和分钟为单位的日期,然后是 AM 或 PM。
用户可以以这种格式输入日期时间:dd/mm/yyyy hh:mm AM/PM
我正在搜索的列是日期时间格式,例如:2021-05-12 09:09:48
实现这个的最佳方法是什么?洗劫与否?如何?
只是我第一次使用 ransack 实现日期时间搜索功能,
我尝试在线搜索,但似乎找不到好的解决方案。谢谢。
解决方案
如果您从参数中接收字符串格式的日期时间并直接将其传递给 ransack,那么您应该先将该字符串转换为 24 小时格式字符串(也可以使用 db 格式),然后将其传递给 ransack。
例如
query_value = Time.zone.parse(params[:created_at_filter]).to_s(:db)
Person.ransack(created_at_eq: query_value)
推荐阅读
- sql - AlwaysOn 可用性组存储
- android - 解决 RecylcerView 中 toLowerCase() 空指针异常的最佳解决方案
- ios - 如何使preferredStatusBarStyle 成为一个函数
- android - 无法播放此视频
- python - 我如何证明和分析代码的运行时间,是 O(n) 吗?
- javascript - 将 Firebase 时间戳转换为当前时间或其他可用形式
- javascript - Square API,读卡器销售产品的监听器
- python - Python语法中的“comp_for”是什么意思?
- gitlab - 如何删除 gitlab CI 作业管道日志/构建和历史记录
- javascript - 断言元素不在页面上