J'ai une collection de @clients avec des attributs id et email Je veux rendre ce format JSONrails 3 JSON de mise en forme JSON personnalisé
[
{"id":" 1","label":"[email protected]","value":"1"},{"id":" 2","label":"[email protected]","value":"2"}
]
dans clients_controller I défini la méthode suivante
def search
@clients = Client.where(:user_id => current_user.id).select('id','email')
render :partial => "clients/search"
end
et voici la vue _search.json.erb
[
<%= raw @client.map{|client| '{"id":"' +" #{client.id}" +'","label":"' + "#{client.email}" + '","value":"' +"#{client.id}" +'"}' }.join(",") %>
]
cela fonctionne, mais je trouvé fugly ... y at-il une façon plus élégante de générer un format json personnalisé dans une vue?
ce n'est pas le format de sortie personnalisé dont j'ai besoin. J'ai clarifié ma question, d'autres idées? – Alpha
'@ client.to_json (...)' sort le standard json. Pouvez-vous clarifier ce que vous entendez par * custom *? Si vous voulez changer l'espace, les nouvelles lignes, etc., alors votre solution est correcte. Cependant, vous ne devriez pas avoir besoin de faire une sortie personnalisée pour json sinon vous ne parlez pas de json normalisé. – Sukima