【发布时间】:2016-01-11 08:57:06
【问题描述】:
我正在尝试将一组 json 对象添加到我的一个模型中。运行迁移工作正常,只要我不包含默认值,但尝试存储任何值都会导致崩溃。当尝试使用空数组作为默认值时,运行迁移时会发生同样的崩溃。
我的迁移:
class AddJsonExampleToMyModel < ActiveRecord::Migration
def change
add_column :my_models,
:json_example
:json,
array: true,
default: []
end
end
错误看起来像:
PG::InvalidTextRepresentation: ERROR: malformed array literal: "[]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
: ALTER TABLE "my_models" ADD COLUMN "json_example" json[] DEFAULT '[]'/.../db/migrate/20151013125334_add_json_example_to_my_model.rb:3:in `change'
ActiveRecord::StatementInvalid: PG::InvalidTextRepresentation: ERROR: malformed array literal: "[]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
: ALTER TABLE "my_models" ADD COLUMN "json_example" json[] DEFAULT '[]'
/.../db/migrate/20151013125334_add_json_example_to_my_model.rb:3:in`change'
PG::InvalidTextRepresentation: ERROR: malformed array literal: "[]"
DETAIL: "[" must introduce explicitly-specified array dimensions.
我是在尝试做一些无法完成的事情,还是我做错了?
我的设置:Rails 4.1.9、(PostgreSQL) 9.4.4、Ruby 2.1.0p0
【问题讨论】:
-
这篇文章可能会回答你的问题:stackoverflow.com/a/20746242/3228012
标签: arrays ruby json postgresql ruby-on-rails-4