我有以下代码片段来从数据库中获取某些列:
@data = Topic.select("id,name").where("id in (?)",@question.question_topic.split(",")).map(&:attributes)
在得到的哈希数组中,它是:
当前:
@data = [ { "id" => 2, "name" => "Sports" }]
改为:
@data = [ { "id" => "2", "name" => "Sports" }]
我想将“id”从fixnum
转换为string
.Id在数据库中为整数。最干净的方法是什么?
注意:使用.map(&:attributes)
后,它不是活动记录关系。
5条答案
按热度按时间8wtpewkr1#
你可以使用
map
来实现:ctehm74n2#
你要找的只是
没有更简单的方法了(我认为这已经足够简单了)。
通过标题,这意味着一个不同的问题-将哈希中的每个值转换为字符串,你可以这样做:
反正就放在那儿了。
jutyujz03#
你可以在这里使用Ruby的#inject:
这会将所有值转换为字符串,而不管键是什么。
如果你使用的是Rails,使用Rails' #each_with_object会更简洁:
ozxc1zmp4#
wd2eg0qa5#
这将迭代散列中的所有键名称,并将值替换为与键相关的数据的#to_s版本。nil被转换为空字符串。此外,这假设您在哈希中没有复杂的数据,如嵌入式数组或其他哈希。