ruby 将数组转换为带引号的字符串

wljmcqd8  于 2022-11-04  发布在  Ruby
关注(0)|答案(3)|浏览(190)

如何转换数组,例如:

[["hello"], ["world"]]

收件人:

"hello", "world"

我试过array.join(',')
但这将返回:

"hello world"

我想要的是一个带有qoutes的字符串:""hello", "world"" .

完整性:

我正在尝试从数组建立这个查询。

DELETE FROM table WHERE column IN ("hello", "world");
wqsoz72f

wqsoz72f1#

请尝试:

array.map{|s| "\"#{s}\""}.join(', ')

更新:
用结构[['a'],['b']做:

array.map{|s| "\"#{s.first}\""}.join(', ')
b4qexyjb

b4qexyjb2#

我会这样做:

array.map { |a| a.first.inspect }.join(', ')

# => "\"hello\", \"world\""

更新:几个替代解决方案:

array.flatten.map(&:inspect).join(', ')

# => "\"hello\", \"world\""

使用Ruby Facets中的String#quote方法:

require 'facets/string/quote'
array.flatten.map(&:quote).join(', ')

# => "\"hello\", \"world\""
rekjcdws

rekjcdws3#

正确的解决方案是使用ActiveRecord::Base.connection#quote方法。这不仅可以处理转义外引号的情况,还可以处理长VARCHAR或TEXT字段中任何延迟的内引号。

相关问题