Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Bagaimana cara menjaga has_many :through hubungan saat membuat serial ke JSON dan kembali ke Rails 4.0.3?

Saya mensimulasikan skenario yang sama persis seperti Anda dan menemukan:

Setiap kali model(Posting) memiliki has_many through asosiasi kemudian setelah membuat instance dari Model itu yaitu, Post melewati Hash misalnya:Post.new( JSON.parse(json) ) atau Post.new(id: 113) sepertinya Rails memperlakukan mereka secara berbeda meskipun mereka menunjuk ke catatan yang sama.

Saya menjalankan perintah berikut dalam urutan seperti yang diberikan di bawah ini:

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

Alih-alih membuat instance baru Post menggunakan Hash secara langsung, saya mengambil catatan dari database menggunakan id diperoleh dari deserializing json. Dalam hal ini, contoh p3 dan contoh p2 merujuk ke Post yang sama tetapi Rails menafsirkannya secara berbeda.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pengecualian waktu habis setelah perintah asinkron dan Tugas. Saat Apa pun menunggu di StackExchange. Redis

  2. Redis menghubungkan ECONNREFUSED 127.0.0.1:6379

  3. Konfigurasi Laravel Redis

  4. Bagaimana cara menggunakan kembali koneksi redis di socket.io?

  5. Kunci CROSSSLOT Aliran Udara yang diminta tidak melakukan hash ke kesalahan slot yang sama menggunakan AWS ElastiCache