Hallo,
beim Ausführen meiner Unittest bekomme ich die Warnung
“/Users/adam/Webs/kwikit/app/controllers/admin_controller.rb:80:
warning: string literal in condition”
Die genannte Zeile enthält folgenden Code:
text @prints[i].empfaenger.name + (@prints[i].empfaenger.company = “”?
“” : @prints[i].empfaenger.company + “\n”) +
(@prints[i].empfaenger.address_additional = “” ? “” :
@prints[i].empfaenger.address_additional + “\n”) + “\n” +
@prints[i].empfaenger.street + “\n” + @prints[i].empfaenger.zip + " " +
@prints[i].empfaenger.city + “\n\n” + @prints[i].empfaenger.country
Wahrscheinlich meckert er über die Condition in
(@prints[i].empfaenger.company = “”? “” : @prints[i].empfaenger.company
Aber was hat er da zu meckern, verstehe ich nicht. Wieso ist da ein
Literal enthalten und wo ist das Problem damit?
Gruß
Adam
On Tue, 24 Feb 2009 23:20:59 +0100
Adam M. [email protected] wrote:
“” : @prints[i].empfaenger.company + “\n”) +
(@prints[i].empfaenger.address_additional = “” ? “” :
@prints[i].empfaenger.address_additional + “\n”) + “\n” +
@prints[i].empfaenger.street + “\n” + @prints[i].empfaenger.zip + " " +
@prints[i].empfaenger.city + “\n\n” + @prints[i].empfaenger.country
Wahrscheinlich meckert er über die Condition in
(@prints[i].empfaenger.company = “”? “” : @prints[i].empfaenger.company
weil ‘=’ != ‘==’
oder weil du ‘einistgleichzeichen’ also eine zuweisung statt eine
überprüfung vornimmst.
gruesse
rene
Sorry to reply in English (my German knowled very limited …).
On Tue, Feb 24, 2009 at 11:20 PM, Adam M. [email protected]
wrote:
text @prints[i].empfaenger.name + (@prints[i].empfaenger.company = “”?
“” : @prints[i].empfaenger.company + “\n”) +
Are you really sure you did not intend something like this (with double
==):
text @prints[i].empfaenger.name + (@prints[i].empfaenger.company ==
“”?
“” : @prints[i].empfaenger.company + “\n”) + …
If you are inside Rails (not in 1.8.6 Ruby, only in Rails), you could
also
write more neatly:
text @prints[i].empfaenger.name +
(@prints[i].empfaenger.company.blank? ?
“” : @prints[i].empfaenger.company + “\n”) + …
The major advantage of blank? is that it will trap both nil values and
empty
strings and also is more readable (the nil values could easily come from
a NULL
in the database, or missing key in a params[] parameter list).
HTH,
Peter
text @prints[i].empfaenger.name +
(@prints[i].empfaenger.company.blank? ?
“” : @prints[i].empfaenger.company + “\n”) + …
The major advantage of blank? is that it will trap both nil values and
empty
strings and also is more readable (the nil values could easily come from
a NULL
in the database, or missing key in a params[] parameter list).
HTH,
Peter
Thx Peter. Funny, English speaking guy is answering German questions! =)
Wahrscheinlich meckert er �ber die Condition in
(@prints[i].empfaenger.company = “”? “” : @prints[i].empfaenger.company
weil ‘=’ != ‘==’
oder weil du ‘einistgleichzeichen’ also eine zuweisung statt eine
�berpr�fung vornimmst.
gruesse
rene
Manchmal mehr Glück als Verstand! Danke!