Redis
 sql >> डेटाबेस >  >> NoSQL >> Redis

मैं has_many कैसे रख सकता हूं:जेएसओएन को क्रमबद्ध करते समय और रेल 4.0.3 में वापस संबंधों के माध्यम से?

मैंने आपके जैसा ही परिदृश्य का अनुकरण किया और पता लगाया:

जब भी किसी मॉडल (पोस्ट) में has_many through . होता है एसोसिएशन तो उस मॉडल का एक उदाहरण बनाने पर, Post Hash पास करना उदाहरण के लिए:Post.new( JSON.parse(json) ) या Post.new(id: 113) ऐसा लगता है जैसे रेल उनके साथ अलग व्यवहार करते हैं, हालांकि वे एक ही रिकॉर्ड की ओर इशारा कर रहे हैं।

मैंने नीचे दिए गए क्रम में निम्नलिखित कमांड चलाए:

p = Post.last
p.tags
p.tags.count
json = p.to_json

p2 = Post.new( JSON.parse(json) )
p2.tags
p2.tags.count   ## Gives incorrect count

p3 = Post.find(JSON.parse(json)["id"])    ### See notes below
p3.tags
p3.tags.count   ## Gives the correct count

सीधे हैश का उपयोग करके पोस्ट का एक नया उदाहरण बनाने के बजाय, मैंने id का उपयोग करके डेटाबेस से रिकॉर्ड प्राप्त किया जेसन को deserializing से प्राप्त किया। इस मामले में, उदाहरण p3 और उदाहरण p2 एक ही पोस्ट का संदर्भ लें लेकिन रेल उन्हें अलग तरह से व्याख्या कर रहे हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. रेल रेडिस मैक्समेमोरी और मैक्समेमोरी-पॉलिसी सेट करता है

  2. रेडिस सेट का उपयोग करना

  3. प्रहरी सी # से रेडिस मास्टर पता प्राप्त करना

  4. हैशमैप (एचएसईटी) के साथ रेडिस में एक जेसन कैसे स्टोर कर सकता है

  5. रेडिस कतार कार्यकर्ता utcparse में दुर्घटनाग्रस्त हो जाता है