2012-02-08 9 views
2

このように私は、いくつかの「団体」を持っている必要がありますActiveModelなどのクラスがあります。JSONにシリアル化されたActiveModelオブジェクトからクラスの関連付けを復元するには?

a  = ActiveModelClass.new 
a.user = User.find(1) 

私はちょうどこのためattr_accessorを使用しています:

attr_accessor :user 

### Elsewhere ### 

a.user.name # => "Kevin" 

これまでのところは良いです。しかし、今、私はJSONにそれをシリアル化したい:

json = a.to_json 
b = ActiveModelClass.new(ActiveSupport::JSON.decode(json)) 

しかし、今、ユーザーはハッシュです:

b.user.class # => Hash 

にはどうすればきれいに、彼らが最初にあったクラスのオブジェクトとしてこれらの「連合」を復元することができますか?

答えて

0

私はちょっと混乱しています。私はあなたの事例を抽象化して、理解するのは難しいと感じています。このようなことはありますか?

b.user 
=> {:name => "Kevin", :email => "[email protected]"} 

user = User.create(b.user) 

あなたは、その後、このユーザーオブジェクトにあなたがやりたいことを含むことができます。

もしそうなら、あなただけ.newまたは.createメソッドに渡すことで、このハッシュのうち、ユーザオブジェクトを作ることができますb.userをそれと等しく設定します。

関連する問題