Ruby on Rails
Sunday, July 7, 2013
On Saturday, 6 July 2013 13:14:09 UTC-7, G-money wrote:
Hey,I was thinking I'd have my controllers do double-duty: the same actions handling json and html requests differentially. For this, it's useful that Rails 3.2 automatic params hash conversion from json work (as described here in the Rails docs). (I'm using ruby 1.9.2.) But it doesn't, that is, it seems I am required to decode the json params explicitly. Why?Here's an example of a post from my dev log...Processing by MarketlessPriceRequestsController#create as JSON Parameters: {"utf8"=>"✓", "price_request"=>"{\"prices_are_public_to_pricemakers\": false, ... Here's params[:price_request] in the controller{"prices_are_public_to_pricemakers":false, ... But it looks like I need to decode the json explicity to get to the accepted form...{"prices_are_public_to_pricemakers"=>false, ... Can I configure my controllers to help me avoid the explicit decode step?
+1 to Fred's suggestion: make sure the parameters are being *sent* as application/json.
I'd also recommend double-checking the code that is sending the data - what you're getting looks like what would result if you did something like this:
(in Rails)
render :json => { :price_request => @price_request.to_json }
(in JS)
$.post('/some_url', { price_request: JSON.generate(some_data_object) })
In both cases, there's two conversions to JSON going on - one explicit, then the other implicit in the transmission (either the render or the post).
--Matt Jones
-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/4e7b11ad-1170-419b-be15-b8e42529f4d9%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment