Ruby on rails 如何在ruby中将字符串、整数、日期等转换为可查询的格式?

Ruby on rails 如何在ruby中将字符串、整数、日期等转换为可查询的格式?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在写一本红宝石。gem的功能之一是根据用户提供的数据行对数据库执行insert查询。我需要使用这些数据行进行插入查询。现在,这些数据行中可能包含字符串、整数、日期等。因此,我需要将它们转换为适当的查询格式(如“string”到“string”),我需要知道是否有任何gem可以让我的生活更轻松 现在我正试图根据它们的类型将它们转换为。所以如果它是一根弦的话,我想我可以像 def formatted_value(val) (val.is_a? String) ? "\"#{val}\""

我正在写一本红宝石。gem的功能之一是根据用户提供的数据行对数据库执行insert查询。我需要使用这些数据行进行插入查询。现在,这些数据行中可能包含字符串、整数、日期等。因此,我需要将它们转换为适当的查询格式(如“string”到“string”),我需要知道是否有任何gem可以让我的生活更轻松

现在我正试图根据它们的类型将它们转换为。所以如果它是一根弦的话,我想我可以像

def formatted_value(val)
   (val.is_a? String) ? "\"#{val}\"" : val
end
因此,如果val是
“some text”
,它只会返回
“\”some text\”
,我可以继续使用它

"Insert into table (str) VALUES (#{formatted_value(val)})"
=> "Insert into table (str) VALUES (\"some Text\")"
我可以发送到mysql客户端。但这也有一些复杂因素。例如,如果用户将val发送为
“some\”Text\”
,我想将其转换为类似
“\”some\\\”Text\”
,以便查询成为

"Insert into table (str) VALUES (\"some \\\"Text\\\" \") " 
在发送到mysql客户端之前,我可以在这里做的一件事是转义字符串,但我不知道它是否已经转义

另外,这只是字符串,我也需要处理日期到字符串的转换,因为by to_的转换不符合格式。 这就是为什么我想知道是否有任何东西可以用于这些工具。

将自己描述为“Ruby数据库工具包”。它可以用于为各种数据库供应商构造和执行SQL查询。它为您处理价值强制。例如:

require 'sequel'

DB = Sequel.connect('jdbc:mysql://localhost/my_db')

DB[:table].insert(str: 'some Text')
# INSERT INTO "table" ("str") VALUES ('some Text') RETURNING "id"

DB[:table].insert(str: "some \"Text\"")
# INSERT INTO "table" ("str") VALUES ('some "Text"') RETURNING "id"

DB[:table].insert(str: 1)
# INSERT INTO "table" ("str") VALUES (1) RETURNING "id"

DB[:table].insert(str: Date.new(2000, 1, 1))
# INSERT INTO "table" ("str") VALUES ('2000-01-01') RETURNING "id"

一个很好的来源提到了两种方法。一个使用续集GEM和其他使用MySQL2 GEM准备然后执行.< /P>你是否考虑使用SQL参数来进行查询?“我需要知道是否有任何GEM可以让我的生活更容易?”这使得你的问题偏离主题。相反,你需要做你的研究,决定你喜欢什么,用它工作,然后问一个问题。要求我们推荐一些东西是离题的。@theTinMan我试图寻找它,但没有得到完全符合要求的东西。无论如何,感谢您鼓励新加入平台的人提出问题此外,问题不仅仅是创业板的可用性。我想有经验的人可能会建议一些替代方法。@Fabio我不太清楚如何使用SQL参数进行查询。我只是以数据行的形式获取参数,然后我尝试将它们放入字符串中进行查询