2016-06-17 5 views
0

Ich habe ein ERBSortieren einer Karte in ERB Datei

<%= 
require "json" 

entries = Ci::Canonical::Language::Tag.map do |tag| 
entry = { 
    "code"  => tag.code, 
    "description" => tag.description, 
    "ordinal"  => tag.value, 
} 
entry 
end 
JSON.pretty_generate(entries) 
%> 

Gibt es eine Möglichkeit Datei ich die Tag.map auf der Grundlage der „Code“ vor Erzeugen der Schemadatei sortieren können ??

Antwort

0

Was Sie tun möchten, ist ein Array zu sortieren, dessen Elemente Hash sind, basierend auf dem "Code" -Wert des Hashs.

entries.sort { |a, b| a["code"] <=> b["code"] } 

Und auch, würde ich vorschlagen, dass Sie dies in Ihrem Controller statt sehen.

EDIT:

Oder Sie könnten das Tag zuerst tun sortieren, sie dann in einem Array abbildet

Ci::Canonical::Language::Tag.sort_by do |a, b| 
    a.code <=> b.code 
end.map do |tag| 
    { 
    "code"  => tag.code, 
    "description" => tag.description, 
    "ordinal"  => tag.value, 
    } 
end 
+0

Vielen Dank @Larry ..... wurde diese für letzten 24 Stunden suchen .. .. arbeitete wie Charme :) –

+0

Gern geschehen. Kannst du meine Antwort akzeptieren? –

+0

Gibt es eine Möglichkeit, wie wir diesen Sortiercode in der Zeile hinzufügen können wie '" Symbole ": [<% = Ci :: Canonical :: Message :: CollectionStrategy.map {| c | % Q {"# {c.name}"}} .join (",")%>] ' –

Verwandte Themen