数据库值是Rails控制台中的数据库值为[“”,“5”,“1”,“2”,“8”,“6”,“9”]显示为“[”“,”5 “ ,“1”,“2”,“8”,“6”,“9”,“”?
["", "5", "1", "2", "8", "6", "9"]
但在滑轨控制台它表示为:
"[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]"
任何解决方案将其显示为相同阵列?
数据库值是Rails控制台中的数据库值为[“”,“5”,“1”,“2”,“8”,“6”,“9”]显示为“[”“,”5 “ ,“1”,“2”,“8”,“6”,“9”,“”?
["", "5", "1", "2", "8", "6", "9"]
但在滑轨控制台它表示为:
"[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]"
任何解决方案将其显示为相同阵列?
看起来你列保存为JSON
[15] pry(main)> JSON.parse("[\"\", \"5\", \"1\", \"2\", \"8\", \"6\", \"9\"]")
=> ["", "5", "1", "2", "8", "6", "9"]
你可以用serialize :name_of_that_column, Array
所以它得到解析从数据库
,您可以检查http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/Serialization/ClassMethods.html˚F调用时
如果你想要做的是从字符串获取整数数组,使用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"]
您已经失去了[很有可能]显着的第一个空元素。 – mudasobwa
Mysql没有数组列,上次我检查。所以你的数据库值不是一个数组,它是一个字符串。 –
'serialize:column,Array'。 – mudasobwa
值来自哪里(是模型属性还是通过原始SQL查询获取?)以及您是如何将其存储在数据库中的? – Stefan