Christiaan Van den Poel
2011-Feb-24 11:42 UTC
Possible bug? ActiveResource in JSON format fails out of the box.
I am doing some tests with a simple rails app. Next to that I''ve created an ActiveResource object that connects to this application to use it''s api. But I want/need to use json format instead of the default (=xml). I''ve come to the conclusion that out-of-the-box that ActiveResource in json is broken when doing updates (put requests) or I''m doing something wrong A sample application can be found here: https://github.com/khelben/activeresource_test More in detail, the ActiveResource tests can be found in lib/employee.rb: https://github.com/khelben/activeresource_test/blob/master/lib/employee.rb All tests consists of the same steps: - creating an employee - updating its name I try these steps in both xml and json format, here are my conclusions: - XML create and update work fine! - JSON create works fine! - JSON update fails! From what I can see from the rails server output is that the params has some unusual attributes: This is the complete data provided with the put request: Parameters: {"employee"=>{"name"=>"Randy", "id"=>"44", *"employee"=>{"employee"=>{"name"=>"Randy", "created_at"=>"2011-02-24T11:20:22Z", "updated_at"=>"2011-02-24T11:20:22Z", "id"=>44, "full_name"=>nil}}*, "full_name"=>"Something"}, "id"=>"44"} It is strange that the params include some unnecessary attributes (indicated in bold). So I think it''s related to have the serialization is handled, depending on the format, the next tests in the same file prove me right: When I just change the format from XML ( https://github.com/khelben/activeresource_test/blob/master/lib/employee.rb#L41) to JSON ( https://github.com/khelben/activeresource_test/blob/master/lib/employee.rb#L77) the same tests produces other output? once again, I see that when using format json, the output of both ''#encode'' and ''#to_json'' contains unnecessary data, which causes the server to fail to update the resource. If someone could confirm these findings and eventually to provide some pointers onto where to solve this, I would be happy to fix this. TIA Christiaan <https://github.com/khelben/activeresource_test> -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Core" group. To post to this group, send email to rubyonrails-core@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-core+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-core?hl=en.