SORU
17 Ocak 2010, Pazar


ActiveRecord seri hale getirmek yerine JSON, YAML

Sıralanmış bir sütun kullanan bir model var:

class Form < ActiveRecord::Base
  serialize :options, Hash
end

Bir şekilde bu seri YAML yerine JSON kullanmak var mı?

CEVAP
12 Mayıs 2011, PERŞEMBE


Raylar 3.1 serialize ile özel bir kodlama kullanabilirsiniz.

class ColorCoder
  # Called to deserialize data to ruby object.
  def load(data)
  end

  # Called to convert from ruby object to serialized data.
  def dump(obj)
  end
end

class Fruits < ActiveRecord::Base
  serialize :color, ColorCoder.new
end

Bu yardımcı olur umarım.

Referanslar:

serializetanımı: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb#L556

Varsayılan YAML raylar ile birlikte gelen kodlayıcı: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/coders/yaml_column.rb

Ve bu load çağrısı olur: https://github.com/rails/rails/blob/master/activerecord/lib/active_record/attribute_methods/read.rb#L132

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • Shameless Maya

    Shameless Ma

    24 Mayıs 2012
  • trickycharms

    trickycharms

    6 Aralık 2013