Konvertieren von hash-string in Ruby
Sagen wir, wir haben ein hash:
flash = {}
flash[:error] = "This is an error."
flash[:info] = "This is an information."
Möchte ich es in einen string konvertieren:
"<div class='error'>This is an error.</div><div class='info'>This is an information".
in nice one liner 😉
Fand ich, dass so etwas wie:
flash.to_a.collect{|item| "<div class='#{item[0]}'>#{item[1]}</div>"}.join
Löst mein problem, aber vielleicht gibt es schönere Lösung gebaut, in hashtable-Klasse?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hash
umfasstEnumerable
, so können Siesammeln
:Können Sie die Schlüssel in dem hash mit
dann von dort können Sie erstellen ein neues array von strings und dann sich Ihnen anzuschließen. So etwas wie
Macht das den trick tun?
inject
ist unendlich praktisch:Das einzige problem, mit Lösungen, die bisher vorgestellt wurden, ist, dass Sie müssen in der Regel-Liste, flash-Mitteilungen, insbesondere um - und hash hat es nicht, also IMHO ist es besser, die Verwendung von vorab definierten array.
OrderedHash
benötigen Sie Ruby 1.8.Oder maby?