我想从title
、first_name
、middle_name
和生成全名last_name
。例如比利·鲍勃·桑顿先生。但是title
andmiddle_name
是可选的,我不想得到任何前导或双空格。我想出了很多方法来做它们,但没有一个看起来真的很优雅。到目前为止,这是我的技术
full_name = "#{title} #{first_name} #{middle_name} #{last_name}"
#FAIL. Leading and double spaces result
full_name = "#{title} #{first_name} #{middle_name} #{last_name}".gsub(/^ /,'').gsub(/ /,' ')
#Works but all that regex tacked on the end is very ugly
full_name = "#{title}#{title.nil? || title.empty? ? '' : ' '}#{first_name} #{middle_name}#{middle_name.nil? || middle_name.empty? ? '' : ' '}#{last_name}"
#Works but goes on forever
我将使用 Rails,因此可以减少我.nil? || .empty?
的 to.blank?
以使最后一个更简洁,但我不禁认为有更好的方法。