我有一种预感,这已经是一种 hack,但我仍然对此感到好奇:
说我有这个:
current_user.memories.where("content LIKE '%#{search}%' OR note LIKE '%#{search}%' OR date LIKE '%#{search}%'")
这是一个搜索字段。
在我的数据库中,在“记忆”表中,我有content:text 和 note:string,所以通过前两个比较,这个技巧很好用。
但是,日期部分显然不起作用。我在内存表中也有一个date:date列,但我不知道如何检查字符串是否匹配。
我可以将字符串格式化为 2013-01-15 之类的格式,但我不知道如何进行此比较。不知何故也将“日期”部分更改为该字符串?
整个事情背后的想法是允许像 2013-01-15 (或某种格式)这样的搜索,它也会自动检查“内存”对象的日期。
建议表示赞赏。
(如果重要的话,数据库是 postgres。)