Tag: 反序列化

使用子级序列化和反序列化ActiveRecord模型

表格有很多条目。 要序列化表单及其使用的条目,我使用: json = @form.to_json( { :only => Form.accessible_attributes.to_a, :include => {:entries => {:only => Entry.accessible_attributes.to_a}}}) 表单和条目属性可以在JSON中修改或删除。 要反序列化我使用(但不工作): @form = @form.from_json(json) @form.save 如何使用表单一次保存条目?

从JSON反序列化ActiveRecord

我想使用JSON序列化将查询结果保存到redis中并查询它。 将查询结果提供给json非常简单: JSON.generate(Model.all.collect {|item| item.attributes}) 但是我没有找到将其反序列化回ActiveRecord的正确方法。 最直接的方式: JSON.parse(@json_string).collect {|item| Model.new.from_json(item)} 给我一个错误: WARNING: Can’t mass-assign protected attributes: id 所以id变空了。 我想过只使用OpenStruct代替ActiveRecord,但我相信有更好的方法。

Rails不会在反序列化YAML / Marshal对象时加载类

Rails:3.0.3 Ruby:1.9.2 尝试使用YAML.load或Marshal.load反序列化一个非常简单的对象会产生一个损坏的对象,因为在反序列化过程中不需要属于的类。 例: # app/models/my_model.rb class MyModel attr_accessor :id end # test/unit/serializing_test.rb require ‘test_helper’ class SerializingTest < Test::Unit::TestCase def test_yaml_serialize_structure my_model = MyModel.new my_model.id = 'my model' File.open( "#{Rails.root}/tmp/object.yml" , 'w' ) do |f| YAML::dump(my_model, f) end end def test_yaml_deserialize_structure object = YAML.load_file "#{Rails.root}/tmp/object.yml" assert( object.instance_of? MyModel ) assert_equal( 'my model', object.id ) end […]