ruby-on-rails - 如何使用 ransack 检查 DateTime 字段是否为空白
问题描述
我试过查询
<%= f.select :ends_at_blank, [true, false], {:include_blank => "All"}, class: "show-tick" %>
但它会产生 sql 错误:
PG::InvalidDatetimeFormat: ERROR: invalid input syntax for type timestamp: ""
LINE 1: ...nds_at" IS NOT NULL AND "activities"."ends_at" != '')) LIMIT...
^
: SELECT "activities".* FROM "activities" LEFT OUTER JOIN "users" ON "users"."id" = "activities"."user_id" WHERE ("users"."user_type" ILIKE '%WPD - SURV/MGR%' AND ("activities"."ends_at" IS NOT NULL AND "activities"."ends_at" != '')) LIMIT $1 OFFSET $2
因为它正在检查空白字符串以及 nil - ''
解决方案
答案是使用 _null 而不是 _blank
<%= f.select :ends_at_null, [true, false], {:include_blank => "All"}, class: "show-tick" %>
推荐阅读
- unit-testing - 使用匹配器返回 a 不能为空
- python - 尝试调整框架大小
- servlets - 我们如何根据优先级或顺序在一个 ServletContextListener 中启动多个服务/作业
- excel - 查找并复制整行并在当前行下方插入复制的行
- c++ - 重新分配 CComBSTR,内存泄漏?
- python - 如果用户的 userAccountControl 为 514,如何获取用户的经理
- angular - PRIME NG 表的日期下拉过滤器
- r - 将 spplot 中的分组值与图例匹配
- r - 迭代地将函数输出添加到R中的小标题
- swift - 将 CIFilter 应用于透明图像