查找和替换字符串

时间:2014-11-29 00:40:30

标签: ruby-on-rails ruby

我建立的应用允许用户存储联系人的姓名和姓氏。名字是强制性的,但姓氏不是。在某些情况下,它们存在,在某些情况下它们不存在。

我尝试使用以下逻辑将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解决方案,当姓氏不存在时,他们没有按预期工作。我真的很感激你的建议。

1 个答案:

答案 0 :(得分:1)

如果contact.last_name不存在,则应使用空字符串

替换“LNAME”
   self.message.gsub! 'LNAME', contact.last_name || ''