2011-12-07 20 views
0

オブジェクトをJSONにシリアル化して、rabbitmq経由でワイヤを介して送信し、それをデシリアライズしたいとします。ruby​​のrabbitmqでオブジェクトをシリアライズして逆シリアル化する

私は、私は、次のオブジェクトを直列化していていること:他の側では

lead = Lead.new 

lead.company = 'some company' 

operation = proc{ AMQP::Exchange.default.publish(
           lead.to_json, 
           :routing_key => header.reply_to, 
           :correlation_id => header.correlation_id 
          )} 

、私はこのようなオブジェクトdescerialiseしようとしています:

callback_queue.subscribe do |header, body| 
    puts "received #{body.inspect}" 

    lead = ActiveSupport::JSON.decode body 

    puts lead.company #NoMethodError: undefined method `company' for #<Array:0x6fe03f3b> 

JSONをされた不思議な配列の3ハッシュで、このように見えます。

[{\"created_at\":null,\"email\":\"[email protected]\",\"id\":null,\"lead_id\":null,\"updated_at\":null},{\"created_at\":null,\"email\":\"[email protected]\",\"id\":null,\"lead_id\":null,\"updated_at\":null}]" 

私が間違っていることは誰でも見ることができますか?

+0

http://stackoverflow.com/questions/4464050/ruby-objects-and-json-serialization-without-rails –

+0

私の問題は、オブジェクトをデコードできないことです。なぜオブジェクトが正しくデコードされないのか分かりません。 – dagda1

答えて

0

私は同じaproachを多かれ少なかれ使用しており、私の側で正しく動作します。おそらく、間違ったメッセージを送信している可能性があります(シリアル化の問題)。新しいrabbitmqを使用すると、ウサギのWebコンソールでメッセージを検査できます。

前にto_jsonを印刷しようとするとよいでしょう。

+0

ヘッドアップしていただきありがとうございます。それがうまくいくことを知っていることは安心しており、問題は私の終わりです。 – dagda1

関連する問題