我必须通过 has_many 关系搜索许多关联模型。为了论证,假设我有一个通过 has_many 关联包含许多类别的 Product 模型。因为我必须对许多父模型的子关联执行此操作,所以我创建了一个缓存表,在其中我将关联中的所有 id 存储为逗号分隔的字符串 - '23,34,56,78' 而不是加入。这也有助于我稍后需要在类别 ID 上使用条件 AND 进行高级搜索。
我的问题是在活动记录中查询此类字符串中是否存在 id 的最佳方法是什么。例如,如果我想要所有具有 id 34、56 和 78 关联的父模型。
为了准确搜索一个 id,我必须搜索 '%,34,%', '34,%', '%,34' 来说明 id 可以占据的字符串中的不同位置。有没有更简单的方法?