Hallo,
ich komme hier grad’ nicht weiter. Ich möchte für einen Helper in
collect eine
Bedingung einbauen. Allerdings funktioniert es nicht so, wie ich mir das
dachte.
Was ich erzielen möchte ist das(der häßliche Weg):
def join_filled(list, join_separator = ‘’)
result = []
list.each do |a|
result << a unless(a.nil? || a.empty?)
end
result.join(join_separator)
end
und was ich gerne hätte, wäre so etwas:
def join_filled(list, join_separator = ‘’)
list.collect{|a| a unless(a.nil? ||
a.strip.empty?)}.join(join_separator)
end
Letzeres fügt aber das Element a immer hinzu, egal ob die Bedingung
erfüllt
ist oder nicht.
Hat vielleicht jemand einen Tip?
Viele Grüße
Michael K.
–
galt.de Web
Services
Michael K.
Berliner Straße 3
D-65439 Flörsheim
Telefon +49 (0) 6145 / 938 581
Telefax +49 (0) 6145 / 938 582
E-Mail [email protected]
Homepage http://www.galt.de
Moinsens
Warum per collect und nicht mit inject oder reject?
def join_filled(list, join_separator = ‘’)
list.inject { |mem, var| mem << var unless
var.blank? }.join(join_separator)
end
def join_filled(list, join_separator = ‘’)
list.reject { |var| !var.blank? }.join(join_separator)
end
(komplett ungetestet)
Gruss,
Tom
Ein sehr eleganter Weg Bedingungen in Collections abzufragen ist hier
beschrieben: Jicksta.com is for sale | HugeDomains
Ist zwar nicht ganz so einfach zu verstehen, aber dafür sehr
wirkungsvoll.
Greetz
Torsten
Am 20.11.2007 um 10:00 schrieb Tom Winkler:
schließt sich ‘elegant’ und ‘nicht ganz so einfach zu verstehen’ nicht
aus? 
Die Idee find ich ganz interessant, aber alles in allem ist das meiner
Meinung nach doch nur eine Art von job security…
Gruß,
Tom
Hi,
Warum per collect und nicht mit inject oder reject?
da hatte ich nicht dran gedacht, bzw. ich bin nicht darauf gekommen.
Danke für den Tip.
Viele
Grüße
Michael K.
Tom Winkler schrieb:
list.reject { |var| !var.blank? }.join(join_separator)
Hallo,
list.each do |a|
list.collect{|a| a unless(a.nil? ||
Michael K.
Telefax +49 (0) 6145 / 938 582
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
–
galt.de Web
Services
Michael K.
Berliner Straße 3
D-65439 Flörsheim
Telefon +49 (0) 6145 / 938 581
Telefax +49 (0) 6145 / 938 582
E-Mail [email protected]
Homepage http://www.galt.de