This project is archived and is in readonly mode.
yajl-ruby as a JSON parsing backend
Reported by Brian Lopez | May 17th, 2009 @ 11:26 PM | in 3.0.2
Add yajl-ruby as one of the JSON parser backends in Rails 3 (and 2.3 once it's back-ported).
This would be especially useful in Rails 3 now that the XML and JSON backends support parsing from an IO as well. The ParamsParser middleware was also updated to take advantage of this (as of this commit): http://github.com/rails/rails/commit/53dda29f8b34073a4b135ee224c1d0...
The yajl-ruby JSON backend would be the first plugable parsing backend to support parsing directly from the IO as a stream. Given todays massively-ajax based web applications, and the popularity of JSON as a transport protocol - I think this patch would be welcomed by the community with open arms.
Rick, the attached diff is mostly from your previous patch to add this in your fork. With small modifications to take advantage of the new IO parsing support for the backends.
Comments and changes to this ticket
-
Rick May 18th, 2009 @ 04:22 AM
- Milestone cleared.
Doh, I wrote a Rails 3 plugin before I saw this. I'd like to get some people using this before we push this to rails core.
-
Francisco Viramontes August 12th, 2009 @ 07:40 AM
hey!
I keep getting a strange error rendering json in edge rails.
The problem is whith this
respond_to do |format| format.json { render :json => @devices.to_json(:only => [:id, :name, :unique_identifier], :include => { :device_variables => { :only => [:id, :upper_threshold, :lower_threshold], :methods => [:current_value, :name, :unit] } } ) } format.xml { render :xml => { :error => "not found" }, :status => 404 } format.html { render :file => "public/404.html", :status => 404 } end
returns a strange error: wrong argument type Hash (expected Data)
But not if I do a simpler
@devices.to_json()
I have the yajl rails plugin installed, any ideas?
Can I help?
Here is the full stack trace:
TypeError in DevicesController#index
wrong argument type Hash (expected Data)
RAILS_ROOT: /Users/paki/Work/freshout/ugmo-v2
Application Trace | Framework Trace | Full Trace/Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
to_json' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
send' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:392:in
method_missing_without_paginate' /Users/paki/.gem/ruby/1.8/gems/mislav-will_paginate-2.3.11/lib/will_paginate/finder.rb:170:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/app/controllers/devices_controller.rb:13:in
index' /Users/paki/Work/freshout/ugmo-v2/app/controllers/devices_controller.rb:11:inindex'
/Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
to_json' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
send' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:392:in
method_missing_without_paginate' /Users/paki/.gem/ruby/1.8/gems/mislav-will_paginate-2.3.11/lib/will_paginate/finder.rb:170:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/mime_responds.rb:191:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/mime_responds.rb:191:inrespond_to' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/base.rb:43:in
send_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/base.rb:43:insend_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/base.rb:113:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/logger.rb:32:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/callbacks.rb:20:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:422:in_run__815259351__process_action__199225275__callbacks' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:375:in
send' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:375:in_run_process_action_callbacks' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/callbacks.rb:19:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rendering_controller.rb:9:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/compatibility.rb:83:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/flash.rb:140:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rescuable.rb:46:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/base.rb:91:inprocess' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/filter_parameter_logging.rb:69:in
sass_old_process' /Users/paki/.gem/ruby/1.8/gems/haml-2.2.2/lib/sass/plugin/rails.rb:19:inprocess' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal.rb:72:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rack_convenience.rb:15:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal.rb:93:in
action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:449:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:449:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
cache' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:incache' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:363:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/head.rb:9:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/methodoverride.rb:24:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:17:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb:93:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/rescue.rb:8:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:35:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:in
synchronize' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/rails/rack/static.rb:31:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:46:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:40:in
each' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:40:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/content_length.rb:13:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/chunked.rb:15:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/handler/mongrel.rb:61:inprocess' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in
process_client' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:ineach' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in
process_client' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:inrun' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in
initialize' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:innew' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in
run' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:ininitialize' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in
new' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:inrun' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/handler/mongrel.rb:34:in
run' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/commands/server.rb:103 /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require' /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in
require' script/server:3/Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
to_json' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:in
send' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_proxy.rb:222:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/associations/association_collection.rb:392:in
method_missing_without_paginate' /Users/paki/.gem/ruby/1.8/gems/mislav-will_paginate-2.3.11/lib/will_paginate/finder.rb:170:inmethod_missing' /Users/paki/Work/freshout/ugmo-v2/app/controllers/devices_controller.rb:13:in
index' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/mime_responds.rb:191:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/mime_responds.rb:191:in
respond_to' /Users/paki/Work/freshout/ugmo-v2/app/controllers/devices_controller.rb:11:inindex' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/base.rb:43:in
send_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/base.rb:43:insend_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/base.rb:113:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/logger.rb:32:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/callbacks.rb:20:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:422:in_run__815259351__process_action__199225275__callbacks' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:375:in
send' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activesupport/lib/active_support/new_callbacks.rb:375:in_run_process_action_callbacks' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/callbacks.rb:19:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rendering_controller.rb:9:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/compatibility.rb:83:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/flash.rb:140:inprocess_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rescuable.rb:46:in
process_action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/abstract_controller/base.rb:91:inprocess' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/filter_parameter_logging.rb:69:in
sass_old_process' /Users/paki/.gem/ruby/1.8/gems/haml-2.2.2/lib/sass/plugin/rails.rb:19:inprocess' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal.rb:72:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal/rack_convenience.rb:15:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/metal.rb:93:in
action' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:449:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_controller/routing/route_set.rb:449:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:29:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/query_cache.rb:34:in
cache' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:9:incache' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/query_cache.rb:28:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:363:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/head.rb:9:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/methodoverride.rb:24:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/params_parser.rb:17:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/session/cookie_store.rb:93:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/rescue.rb:8:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/callbacks.rb:35:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:in
synchronize' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/lock.rb:11:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/rails/rack/static.rb:31:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:46:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:40:in
each' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/urlmap.rb:40:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/rails/rack/log_tailer.rb:17:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/content_length.rb:13:incall' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/chunked.rb:15:in
call' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/handler/mongrel.rb:61:inprocess' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in
process_client' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:ineach' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in
process_client' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:inrun' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in
initialize' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:innew' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in
run' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:ininitialize' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in
new' /opt/local/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:inrun' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/actionpack/lib/action_dispatch/vendor/rack-1.1.pre/rack/handler/mongrel.rb:34:in
run' /Users/paki/Work/freshout/ugmo-v2/vendor/rails/railties/lib/commands/server.rb:103 /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:ingem_original_require' /opt/local/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:31:in
require' script/server:3Request
Parameters:
{"format"=>"json", "property_id"=>"3"}
Show session dump
Response
Headers:
None
-
Rick August 12th, 2009 @ 10:02 AM
1) make sure your edge rails is up to date.
2) UseActiveSupport::JSON.encode(@devices, :only....)
.Every JSON library implements #to_json differently, so you can't rely
on it anymore. For more info, check the changelogs, or wait for the
release announcement when the Rails 3 changes are blogged. -
Brian Lopez August 12th, 2009 @ 06:16 PM
So the strange thing is, yajl-ruby only overrides to_json if you specifically require 'yajl/json_gem' somewhere. Your yajl-rails plugin doesn't do that, so I'd also assume to_json would work the way Francisco has it above.
That being said,
ActiveSupport::JSON.encode(@devices, :only....)
should work fine. -
Rick August 13th, 2009 @ 03:58 AM
Sure, that may be true. Maybe another json lib is being loaded? This
part of rails has changed a lot even between 2.3 and 3.0. There'll be
some clear guidance on how to proceed when Rails 3 is released. -
Brian Lopez January 6th, 2010 @ 08:01 PM
What do you guys think about getting this into core?
My fork of Rick's plugin should be up to date with both changes to the yajl-ruby API and the Rails JSON backend API.
http://github.com/brianmario/yajl-railsI think it's safe to say enough people are using it (it was also mentioned in the 2.3.3 release notes as being one of the JSON backends) to justify finally getting it into core. Thoughts?
-
Jeremy Kemper January 6th, 2010 @ 11:19 PM
- State changed from new to open
+1 for core. Much nicer than the jsongem backend.
-
Brian Lopez January 26th, 2010 @ 04:43 PM
Btw, I'm pretty sure it'll apply cleanly to the 2.3.x and 3.x branches
-
Brian Lopez January 27th, 2010 @ 06:28 AM
Sorry, the author line was wrong in that patch - use this one instead
-
Repository February 5th, 2010 @ 06:23 PM
- State changed from open to committed
(from [a96bf4ab5e73fccdafb78b99e8a122cc2172b505]) Add yajl-ruby as a JSON parsing backend
[#2666 state:committed]
Signed-off-by: Jeremy Kemper jeremy@bitsweat.net
http://github.com/rails/rails/commit/a96bf4ab5e73fccdafb78b99e8a122... -
Repository February 5th, 2010 @ 08:32 PM
(from [83b4c161fc1a7405c0abeeebda37b9cbfe899a7b]) Add yajl-ruby as a JSON parsing backend
[#2666 state:committed]
Signed-off-by: Jeremy Kemper jeremy@bitsweat.net
http://github.com/rails/rails/commit/83b4c161fc1a7405c0abeeebda37b9... -
Jeremy Kemper October 15th, 2010 @ 11:01 PM
- Milestone set to 3.0.2
- Importance changed from to High
-
csnk May 18th, 2011 @ 08:30 AM
We are the professional clothing manufacturer and clothing supplier, so we manufacture kinds of custom clothing manufacturer. welcome you to come to our china clothing manufacturer and clothing factory.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile »
<h2 style="font-size: 14px">Tickets have moved to Github</h2>
The new ticket tracker is available at <a href="https://github.com/rails/rails/issues">https://github.com/rails/rails/issues</a>
People watching this ticket
Attachments
Referenced by
- 2666 yajl-ruby as a JSON parsing backend [#2666 state:committed]
- 2666 yajl-ruby as a JSON parsing backend [#2666 state:committed]