Rails - 格式化SQL的逗号分隔值

时间:2011-03-09 17:54:14

标签: ruby-on-rails

我如何使用以下逗号分隔的字符串:

111,222,333

并将其正确格式化为以下sql:

从id IN('111','222','333')

的表中选择全部

我正在使用find_by_sql的预准备语句。请帮忙。

2 个答案:

答案 0 :(得分:1)

您可以使用map格式化ID:

'111,222,333'.split(',').map { |id| "'#{id}'" }.join(',')

有一种用字符包装字符串的方法,但它让我感到厌烦。因此,丑陋的地图块。

答案 1 :(得分:0)

string = "111, 222, 333"
ids = string.gsub(/(\d)/, '\'\1\'')
query = "select all from table where id IN (#{ids})"