我使用各种函数的输出构建了这个字符串,每个函数都返回字符串:
[resource_name,
duration,
project_name,
total_hours,
details,
booker,
user_details].join("\n")
这些函数中的每一个都返回一串信息,这些信息作为一个整体构建了一条通知消息。我努力实现的是每个字符串由一个新的行字符连接,但有时函数返回一个空字符串,因为没有指定信息。例如,如果未指定project_name,则字符串将为空。
如何删除整行,而不是使用空字符串后跟新行?,因为它看起来不太明显。
答案 0 :(得分:2)
您可能会在执行join
之前尝试准备数组。请考虑以下代码:
[resource_name,
duration,
project_name,
total_hours,
details,
booker,
user_details].compact
.reject { |s| s.empty? }
.join("\n")
我使用compact
方法从数组中删除所有nil
元素(如果您100%确定没有nil
,则可以省略该元素)。下一步是删除或reject
所有empty?
字符串(请注意,empty?
是string
上的方法。
祝你好运!