如何将json从ActiveModel :: Serializer解析回对象

时间:2014-09-03 15:58:19

标签: ruby-on-rails json serialization active-model-serializers

我有一堆序列化器。现在我想将JSON转回原始对象进行测试。我没有看到使用ActiveModel :: Serializers的方法。看起来曾经有一个不推荐使用的from_json方法。你怎么这么做的?

基本上我想测试这样的回合:

json = WidgetSerializer.new(@widget).to_json
testw = Widget.new
testw.from_json(json) #from_json doesn't exist in ActiveModel::Serializers
@widget.should == testw

但模型上的“from_json”方法无法正确读取序列化程序中的json,因为它不是预期的格式

1 个答案:

答案 0 :(得分:0)

我能想到的最好的方法是使用Widget.find()或Widget.find_by(),具体取决于传递给序列化程序的属性(特别是如果其中一个是唯一属性)

例如,如果您的序列化程序包含id(在您的情况下最简单):

   json = WidgetSerializer.new(@widget).to_json
   target_id = JSON.parse(json)[:id]
   test_widget = Widget.find(target_id)
   @widget.should == test_widget