存储多维数组(矩阵)rails postgresql

时间:2018-10-02 18:21:00

标签: ruby-on-rails postgresql ruby-on-rails-5

我正在为学校项目做Rails应用程序,现在我需要使用postgresql存储matrix。我将值保存在一个数组中,但是我想得更好,得出的结论是我需要一个矩阵,但我不知道该怎么做。

我以这种方式尝试过: -迁移:

add_column :table, :field, :text, array:true, default: []

使用此迁移,值保存如下:

[a,b,c,d,a,c,b,d,a,b,c,d,e]

我认为我需要的是这样的:

[[a,b,c,d],[a,c,b,d],[a,b,c,d,e],[...]]

因为这种方式将值分组。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

我做了一个简单的rails项目,向您展示如何将多维数组保存到DB。请在此处检查:https://github.com/nezirz/multidimensional_arrays

外观:

enter image description here

此处是包含所需信息的超级教程。请检查本教程。 这是有关多维数组情况的页脚规则信息:

One last note about arrays in PostgreSQL: there are no element count constraints, and any array can be multidimensional. With the multidimensional arrays, they must be “square” (the sub arrays must all have the same number of elements).

[[1,2,3], [2,3,4], [4,5,nil]]
# Valid array value in PostgreSQL, each subarray has the same number of
# elements
[1,2,[3,4]]
# Invalid array, we are mixing values and arrays at a single level

请尝试使用本教程https://dockyard.com/blog/ruby/2012/09/18/rails-4-sneak-peek-postgresql-array-support