rails是否支持mysql json数据类型

时间:2016-03-03 10:44:50

标签: mysql ruby-on-rails activerecord

我知道在rails中我们可以为mysql中的列使用文本数据类型,我们希望将哈希值或数组保存到其中,其中rails以yaml格式序列化哈希并将其保存在列中。

class A < ActiveRecord::Base
  serialize :data, Hash
end

但是如果我需要在这个列上执行一些搜索,我必须加载所有记录并对所有哈希进行反序列化,并使用ruby在哈希中搜索。那么有没有办法告诉mysql在哈希中搜索并返回匹配的记录?我认为普通的yaml序列化不支持这个,因为它只是一个文本,rails是否支持mysql json数据类型或任何其他解决此问题的方法?

1 个答案:

答案 0 :(得分:6)

看起来Rails 5本身应该支持MySQL JSON数据类型。这里有一个拉取请求#21110,它描述了一下。

看起来您可以将其添加到create_tablechange_table

create_table :json_data_type do |t|
    t.json :settings
end