Rails控制台中的数据库值为[“”,“5”,“1”,“2”,“8”,“6”,“9”]显示为“[\”\“,”5“, \“1 \”,\“2 \”,\“8 \”,\“6 \”,\“9 \”]“?

时间:2017-09-05 10:45:29

标签: mysql ruby-on-rails ruby ruby-on-rails-4

数据库值

["", "5", "1", "2", "8", "6", "9"] 

但是在Rails控制台中它显示为:

"[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]" 

任何显示它与数组相同的解决方案?

2 个答案:

答案 0 :(得分:0)

看起来你的列保存为json

[15] pry(main)> JSON.parse("[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]")
=> ["", "5", "1", "2", "8", "6", "9"]

您可以使用serialize :name_of_that_column, Array,以便在从db

调用时对其进行解析

您可以查看http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Serialization/ClassMethods.html f

答案 1 :(得分:-1)

如果您想要的是从字符串获取整数数组,请使用scan和正则表达式。

例如,

   pry(main)> str = "[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]"
    => "[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]"
   pry(main)> str.scan(/\d+/)
    => ["5", "1", "2", "8", "6", "9"]