json_builder icon indicating copy to clipboard operation
json_builder copied to clipboard

Render hashes?

Open alfuken opened this issue 11 years ago • 3 comments

I have a list of prices for a product

prices = [
  #<Price currency="usd", value="130">,
  #<Price currency="eur", value="100">,
  #<Price currency="gbp", value="70">,
]

and want to render it like this:

"product": {
  "title": "foo",
  "prices": {
    "usd": 130,
    "eur": 100,
    "gbp": 70
  }
}

Problem is, array of prices is not always the same - it may or may not have other currencies, there can be 10, there can be 1, there can be none at all. I've spent whole day trying to figure out, how do I handle anything other than plain array, and couldn't find a clue. So my question is: how do I do this?

alfuken avatar Jun 14 '13 14:06 alfuken

You can use a key method.

array prices do |price|
  key price.currency, price.value
end

RKushnir avatar Jul 10 '13 09:07 RKushnir

@RKushnir nah, too late, I've switched to jbuilder gem already. Not so pretty, but works great, written by rails core, and supports partials out of the box.

alfuken avatar Jul 11 '13 09:07 alfuken

@alfuken I understand you :)

RKushnir avatar Jul 11 '13 09:07 RKushnir