避免在地图变量中使用引号

Avoiding quotes in a map variable

我正在尝试使用地图函数中的变量创建查询,但存储在其中一个字段中的内容确实包含 '(引号,如 Barney's)。所以每次它破裂,因为 ' 都会破坏声明。我怎样才能绕过它? 我尝试使用 .split 函数但没有成功。 不用担心 SQL 注入,因为我只是将数据从 API 加载到我的数据库。

代码:

query_values = activities.map do |activity|
  '(' +
  "#{activity['id']},
  ""'#{activity['type']}""'" #using ""' just to fill the column when empty cells are raised
  +')'

end
query = "INSERT INTO pd_activities  VALUES #{query_values.join(', ')}"

提前致谢。

cheat sheet:

中列出了如何正确执行此操作
db[:pd_activities].insert(
  id: activity['id'],
  type: activity['type']
)

这会为您解决所有转义问题。如果 activity 只有这两个键,您甚至可以这样做:

db[:pd_activities].insert(activity)