如何转换数组,例如:
[["hello"], ["world"]]
收件人:
"hello", "world"
我试过array.join(',')但这将返回:
array.join(',')
"hello world"
我想要的是一个带有qoutes的字符串:""hello", "world"" .
""hello", "world""
完整性:
我正在尝试从数组建立这个查询。
DELETE FROM table WHERE column IN ("hello", "world");
wqsoz72f1#
请尝试:
array.map{|s| "\"#{s}\""}.join(', ')
更新:用结构[['a'],['b']做:
[['a'],['b']
array.map{|s| "\"#{s.first}\""}.join(', ')
b4qexyjb2#
我会这样做:
array.map { |a| a.first.inspect }.join(', ') # => "\"hello\", \"world\""
更新:几个替代解决方案:
array.flatten.map(&:inspect).join(', ') # => "\"hello\", \"world\""
使用Ruby Facets中的String#quote方法:
String#quote
require 'facets/string/quote' array.flatten.map(&:quote).join(', ') # => "\"hello\", \"world\""
rekjcdws3#
正确的解决方案是使用ActiveRecord::Base.connection#quote方法。这不仅可以处理转义外引号的情况,还可以处理长VARCHAR或TEXT字段中任何延迟的内引号。
ActiveRecord::Base.connection#quote
3条答案
按热度按时间wqsoz72f1#
请尝试:
更新:
用结构
[['a'],['b']
做:b4qexyjb2#
我会这样做:
更新:几个替代解决方案:
使用Ruby Facets中的
String#quote
方法:rekjcdws3#
正确的解决方案是使用
ActiveRecord::Base.connection#quote
方法。这不仅可以处理转义外引号的情况,还可以处理长VARCHAR或TEXT字段中任何延迟的内引号。