This is also a problem in Merb. I believe AR's json and Merb's json
don't play well together. I put this in init.rb and now life is grand.

Merb.disable :json


On Aug 24, 1:04 pm, Mads Kristiansen <[EMAIL PROTECTED]>
wrote:
> Okay, thanks. Just wanted to confirm that it actually worked  
> somewhere.. :)
>
> I removed the "json_pure" gem and now it works for me too.. Not sure  
> if that will cause other problems, but we'll see about that.
>
> Best regards, Mads Kristiansen
>
> On 24/08/2008, at 19.32, Frederick Cheung wrote:
>
>
>
>
>
> > On 24 Aug 2008, at 13:41, Mads Kristiansen wrote:
>
> >> Hi there,
>
> >> I am fairly new to the Rails framework, so forgive me if there is an
> >> obvious solution to this problem.
>
> >> I am using Rails 2.1.0 and trying to jsonify a hash containing an
> >> array. E.g.
>
> >> result = { :name => "McLovin", :attachments => ['file.pdf',
> >> 'file.jpg'] }
> >> => {:attachments=>["file.pdf", "file.jpg"], :name=>"McLovin"}
> >> result.to_json
>
> >> I would expect something like:
>
> >> {
> >>  "name": "McLovin",
> >>  "attachments": [
> >>      "file.pdf",
> >>      "file.jpg"
> >>  ]
> >> }
> > Which is exactly what I got when I tried this out. Do you have any  
> > plugins/use any gems that could be clashing with activesupport's  
> > JSON stuff?
>
> > Fred
>
> >> But instead I get:
>
> >> TypeError: wrong argument type Hash (expected Data)
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoding.rb:21:in `to_json'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoding.rb:21:in `send'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoding.rb:21:in `encode'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoding.rb:31:in `raise_on_circular_reference'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoding.rb:20:in `encode'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoders/hash.rb:42:in `to_json'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoders/hash.rb:41:in `map'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoders/hash.rb:41:in `to_json'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/core_ext/object/misc.rb:28:in `returning'
> >>        from /Library/Ruby/Gems/1.8/gems/activesupport-2.1.0/lib/
> >> active_support/json/encoders/hash.rb:40:in `to_json'
> >>        from (irb):54
>
> >> If I do "result.to_json( :except => :attachments )", then it works.
>
> >> Best regards, Mads Kristiansen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to