2016-03-03 33 views
8

我知道在rails中我們可以使用文本數據類型作爲mysql中的列,我們想要保存哈希或者數組到它,其中rails以yaml格式序列化哈希並保存它在列中。是否rails支持mysql json數據類型

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

但是如果我需要在此列執行一些搜索,我要加載所有的記錄和反序列化所有散列值,並且使用Ruby的哈希值進行搜索。那麼有沒有辦法告訴mysql在哈希中搜索並返回匹配的記錄?我認爲這不支持正常的yaml序列化,因爲它只是一個文本,所以rails支持mysql json數據類型或任何其他解決方案來解決這個問題?

回答

5

它看起來像Rails 5本應支持MySQL JSON數據類型。這裏有一個拉動請求#21110,它描述了一下。

它看起來像你就可以把它添加到您的create_tablechange_table

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

如何Rails的4.2.x版? – Tilo

+1

看起來它不在4.2中:https://github.com/rails/rails/pull/21110#issuecomment-166488468 – jlongtine