JBuilder loop that produces hash
jbuilder, json, ruby-on-rails
Solution
Jbuilder dev here.
Short answer: Yes. It's possible without converting array of models into hash.
json.service_issues do
@service.issues.each{ |issue| json.set! issue.id, issue.name }
end
but it'd probably be easier to prepare hash before-hand.
json.service_issues Hash[@service.issues.map{ |issue| [ issue.id, issue.name ] }]
Problem
I need loop that produces hash, not an array of objects. I have this: ``` json.service_issues @service.issues do |issue| json.set! issue.id, issue.name end ``` that results: ``` service_issues: [ { 3: "Not delivered" }, { 6: "Broken item" }, { 1: "Bad color" }, { 41: "Delivery problem" } ] ``` I need this: ``` service_issues: { 3: "Not delivered", 6: "Broken item", 1: "Bad color", 41: "Delivery problem" } ``` Is it possible to do this without converting AR result to hash manually?