我想检查current_user.id
是否属于一组ID。目标是显示current_user的ID属于一组ID的记录。
ID保存在t.text table_column中。
例如:“2,6,78”。
我试图这样做:
array = table_column.split(", ").map(&:to_i)
array.include?(current_user.id)
然后你会得到一个数组并使用include?
来检查ID是否包含在数组中。但是如何在控制器中使用它来过滤记录?
这应该显示在控制器
中@records = Record.where(.../* display if current_user.id >> table_column IDs */)
答案 0 :(得分:1)
我强烈建议您更改数据库结构以更好地处理此问题,但如果不能,那么这应该可行。让我觉得写它很脏,但它会起作用。
Record.where(['table_column = ? OR table_column LIKE ? OR table_column LIKE ? OR table_column LIKE ?',
"#{id}", "#{id},%", "%, #{id},%", "%, #{id}"])
在您执行此操作之前,请查看您的数据库并查看它们是否具有更高效的正则表达式查询。我知道PostgreSQL有一些。