首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql语法尝试使用carrierwave gem在rails中上传多个图像时出错

问Mysql语法尝试使用carrierwave gem在rails中上传多个图像时出错
EN

Stack Overflow用户
提问于 2015-09-30 20:37:09
回答 1查看 285关注 0票数 1

我正在遵循carrierwave文档here将多张图片上传到我的列表模型中。当我使用命令时,

代码语言:javascript
复制
rails g migration add_images_to_listings images:json

像这样成功创建迁移-

代码语言:javascript
复制
class AddImagesToListings < ActiveRecord::Migration
  def change
    add_column :listings, :images, :json
  end
end

但是运行rake db:migrate会抛出mysql语法错误

代码语言:javascript
复制
     Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near 'json'
     at line 1: ALTER TABLE `listings` ADD `images` json/usr/local/rvm/gems/ruby-2.2.1/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:299:in `query'

我怀疑这是因为mysql不支持json数据类型。有什么变通方法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-05-19 00:24:39

正如你在这里看到的,https://dev.mysql.com/doc/refman/5.7/en/json.html

JSON数据类型仅适用于Mysql 5.7.8或更高版本。

还有这里的https://github.com/rails/rails/pull/21110

在Rails 5中添加了MySQL JSON类型。

因此,如果您的设置低于这些配置,则不能将JSON与Mysql一起使用。

但您可以在迁移中使用:text类型来解决此问题:

代码语言:javascript
复制
class AddImagesToListings < ActiveRecord::Migration
  def change
    add_column :listings, :images, :text
  end
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32866305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档