Activehost与生产中的ActiveModel jsonb属性类不同

时间:2017-03-13 16:20:09

标签: ruby-on-rails postgresql heroku

我有一个在Heroku上运行PostgreSQL 9.6的Rails 5.0.2应用程序,使用以下模型:

create_table "stories", force: :cascade do |t|
  t.string   "title",                     default: "",    null: false
  t.datetime "created_at"
  t.datetime "updated_at"
  t.boolean  "image_processing"
  t.jsonb    "image_json"
  t.string   "image_file_name"
  t.string   "image_content_type"
  t.integer  "image_file_size"
  t.datetime "image_updated_at"
end

在我的应用中,我认为image_jsonHash。因此,当我调用Story.last.image_json.class时,我希望输出始终为Hash,这在我的开发环境中是正确的。当我在生产(Heroku)上运行相同的命令时,输出不是Hash,而是String。这怎么可能?

在localhost上:

Story.last.image_json.class
=> Hash

关于制作:

Story.last.image_json.class
=> String

起初我想也许是因为我在开发(9.4)中运行的稍微旧版本的Postgres比在生产中运行,但是将Postgres安装升级到9.6都没有效果。

我在操作之前只需检查代码中image_json的类,暂时解决了这个问题,但这并没有真正解决我的问题。

1 个答案:

答案 0 :(得分:1)

这是Rails 5.0.2问题 - issue