Rails,使用carrierwave上传多个图像,但我的数据库不支持json

时间:2016-05-30 09:11:17

标签: ruby-on-rails json carrierwave

我正在尝试使用Carrierwave进行多个图片上传。 在github上关注了载波指南之后我做了:

rails g migration add_images_to_areas images:json
rake db:migrate

但是看到我的架构,我的区域表没有显示,而是我得到:

# Could not dump table "areas" because of following StandardError
#   Unknown type 'json' for column 'images'

我现在该怎么办?我应该使用其他类型而不是json,但是什么?

很抱歉,如果这是一个业余问题。

2 个答案:

答案 0 :(得分:2)

默认情况下,数据库不支持数组,哈希等。

为了做到这一点,您可以序列化它,将此代码添加到您的模型中:

class Name_class < ActiveRecord::Base
  serialize :column_name, JSON
end

并更改迁移字段:

add_column :user_preferences, :text

这会将信息作为Text插入到数据库中,当您检索它时,它将是JSON

有关serialization RailsGuides#Serialize

的更多信息

答案 1 :(得分:1)

我不确定这里出了什么问题,Carrierwave的github教程建议:json ,但你不必这样做。

我刚刚按照Carrierwave上传多张图片的指南后,一切都很顺利:Rails 4 multiple image or file upload using carrierwave