user
模型的goal
字段是一个数组:
t.integer "goal", default: [], array: true
目标的有效条目为[[],[],[]]
。如果我愿意
Match.create(goal: [[],[],[]])
我得到一个例外:
ActiveRecord::StatementInvalid: PG::InvalidTextRepresentation: ERROR: malformed array literal: "{{},{},{}}"
DETAIL: Unexpected "}" character.
我知道可以通过将其另存为goal: []
来解决此问题,但是我丢失了有关子数组数量的信息。有办法解决这个问题吗?
答案 0 :(得分:1)
您已从尝试将数字数组存储到固定长度的数组,其中包括空值甚至子数组。因此,t.integer
字段是不好的。您需要使用t.jsonb
或t.json
字段。