2016-03-03 8 views
8

का समर्थन करता है मुझे पता है कि रेल में हम mysql में कॉलम के लिए एक टेक्स्ट डेटा प्रकार का उपयोग कर सकते हैं, जिसे हम हैश या सरणी को सहेजना चाहते हैं, जहां रेल yaml प्रारूप में हैश को क्रमबद्ध करते हैं और इसे सहेजते हैं कॉलम मेंक्या रेल्स mysql json डेटा प्रकार

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

लेकिन अगर मैं इस स्तंभ पर कुछ खोज करने के लिए की जरूरत है, मैं सभी रिकॉर्ड लोड और सभी हैश de-क्रमानुसार, और हैश के भीतर खोज करने के लिए गहरे लाल रंग का उपयोग करना होगा। तो हैश के भीतर खोज करने और मिलान किए गए रिकॉर्ड लौटने के लिए mysql को बताने का कोई तरीका है? मुझे लगता है कि यह सामान्य यामल सीरियलाइजेशन के साथ समर्थित नहीं है क्योंकि यह सिर्फ एक पाठ है, इसलिए रेल इस समस्या के लिए mysql json डेटा प्रकार या किसी अन्य समाधान का समर्थन करते हैं?

उत्तर

5

ऐसा लगता है कि रेल 5 को MySQL JSON डेटा प्रकार के लिए मूल रूप से समर्थन होना चाहिए। यहां एक पुल अनुरोध है #21110 जो इसे थोड़ा सा वर्णन करता है।

और यह है कि आप अपने create_table या change_table में जोड़ने के लिए सक्षम हो जाएगा दिखता है:

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

तरीके के बारे में रेल 4.2.x? – Tilo

+1

दिखाता है कि यह 4.2 में नहीं है: https://github.com/rails/rails/pull/21110#issuecomment-166488468 – jlongtine

संबंधित मुद्दे