When multiple conditions (OR) in case statement lead to the same code.
Tedious and inefficient way….
case telecom_type_code when 1 telecom.phone_number = telecom_value telecom.url_scheme = tel_url_scheme when 2 telecom.phone_number = telecom_value telecom.url_scheme = tel_url_scheme when 3 telecom.phone_number = telecom_value telecom.url_scheme = tel_url_scheme when 4 telecom.phone_number = telecom_value telecom.url_scheme = tel_url_scheme when 5 telecom.email = telecom_value telecom.url_scheme = email_url_scheme else raise "Error, unknown telecommunication type of #{telecom_type_code}" end
A much better way and not to mention more efficient way to write the same thing…
case telecom_type_code when 1, 2, 3, 4 telecom.phone_number = telecom_value telecom.url_scheme = tel_url_scheme when 5 telecom.email = telecom_value telecom.url_scheme = email_url_scheme else raise "Error, unknown telecommunication type of #{telecom_type_code}" end
Both have the same meaning and reads, “when the telecom_type_code is either 1, 2, 3, or 4, assign the telecom_value to phone_number, and tel_url_scheme to url_sheme. When the type is 5 it is going to be an email assignment.
Recent Comments