在Ruby on Rails中格式化全名

时间:2016-01-21 10:46:02

标签: ruby-on-rails ruby-on-rails-4

在下面的示例中,middle_name是可选的。任何没有middle_name的名称都需要额外的空格。请任何人按照方法进行修正。

  def name
    "#{first_name} #{middle_name} #{last_name}".titleize
  end

5 个答案:

答案 0 :(得分:10)

你可以试试这个:

def name
  [first_name, middle_name, last_name].select(&:present?).join(' ').titleize
end

答案 1 :(得分:3)

改为使用

def name
  [first_name, middle_name, last_name].reject(&:blank?).join(' ').titleize
end

答案 2 :(得分:0)

def name    
   "#{first_name} #{middle_name}#{" " if middle_name.present?}#{last_name}".titleize
end

答案 3 :(得分:0)

此保护措施和格式:(例如)=> Scott, Michael G

def full_name
  return if last_name.blank? && first_name.blank?

  ["#{last_name}, #{first_name}", middle_initial, suffix].select(&:present?).join(' ').titleize
end

答案 4 :(得分:-1)

承包中间名:

def formatted_name(full_name)
  parts = full_name.split
  name  = parts.first
  name += " #{parts[1][0,1].upcase}. " if parts.length > 2
  name += " #{parts[2][0,1].upcase}. " if parts.length > 3
  name += parts.last
end

puts formatted_name("Bob Alan Faria Stwart") => "Bob A. F. Stwart"