rails postgres column ruby-on-rails json ruby-on-rails-3

ruby on rails - postgres - Rails 3-Cómo crear un objeto JSON para almacenar en la base de datos



rails json column (3)

Estoy creando un observador AuditLog que vigila varios modelos.

Me gustaría que el observador tenga un after_create, que crea un objeto JSON que se almacena en una columna de la base de datos. Contendrá datos como {photoid: 123, photoname: "asdasd", creator_id: "asdasd"} etc ...

En Rails, ¿cómo creo este tipo de objeto JSON y luego cómo lo inserto en la base de datos junto con otros campos que no son JSON?

Gracias



Las versiones actuales de los rieles admiten la serialización json fuera de la caja. Defina su campo como una cadena (o texto) en la migración y luego:

class Foo < ActiveRecord::Base serialize :field, JSON end bar = Foo.new bar.field = [1,2,3] bar.save


Primero, definitivamente revise ActiveRecord serialize y vea si hace lo que necesita: http://api.rubyonrails.org/classes/ActiveRecord/Base.html#method-c-serialize

Sin embargo, si necesita JSON específicamente (serializar usa YAML por defecto), entonces siempre puede falsificarlo a mano.

Simplemente puede crear un hash en Ruby y luego llamar a to_json en él antes de asignarlo a su atributo modelo.

data = { ''photoid'' => 123, ''photoname'' => "asdasd", ''creator_id'' => "asdasd" } myrecord.stored_data = data.to_json myrecord.save