检查整数是否属于一组整数(ID)

时间:2015-03-28 21:42:56

标签: ruby-on-rails

我想检查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 */)

1 个答案:

答案 0 :(得分:1)

我强烈建议您更改数据库结构以更好地处理此问题,但如果不能,那么这应该可行。让我觉得写它很脏,但它会起作用。

Record.where(['table_column = ? OR table_column LIKE ? OR table_column LIKE ? OR table_column LIKE ?',
              "#{id}", "#{id},%", "%, #{id},%", "%, #{id}"])

在您执行此操作之前,请查看您的数据库并查看它们是否具有更高效的正则表达式查询。我知道PostgreSQL有一些。