我建立的应用允许用户存储联系人的姓名和姓氏。名字是强制性的,但姓氏不是。在某些情况下,它们存在,在某些情况下它们不存在。
我尝试使用以下逻辑将LNAME替换为联系人的姓氏。
def replace_names
self.message.gsub! 'LNAME', contact.last_name
self.message.gsub! 'FNAME', contact.first_name
#METHOD 2
#h = {"FNAME" => contact.first_name,"LNAME" => contact.last_name}
#self.message.gsub!(/\w+/) { |m| h.fetch(m,m)}
#METHOD 3
#self.message.gsub!(/[FNAMELNAME]/, 'FNAME' => 1, 'LNAME' => 2)
end
当存在名字和姓氏时,逻辑(未注释的名称)完全正常。但是,如果没有姓氏,结果就到处都是。在某些地方,LNAME显示为LNAME,在某些地方不会显示。
我经历了其他一些SO解决方案,当姓氏不存在时,他们没有按预期工作。我真的很感激你的建议。
答案 0 :(得分:1)
如果contact.last_name
不存在,则应使用空字符串
self.message.gsub! 'LNAME', contact.last_name || ''