如何在rails中编写助手以获得First first。姓?

时间:2018-01-18 18:54:13

标签: ruby-on-rails

def formatted(format)
  case format

  when :readable_full
  [first_name, middle_initial, last_name].select(&:present?).join(" ").titleize

  when :readable_short
  [first_name, last_name].select(&:present?).join(" ").titleize

else
  fail InvalidFormatError
 end
end

# :readable_full => Mike A Smith # :readable_short => Mike Smith

现在我想做这样的事情 # :readable_first_initial =>史密斯先生

假设这样的事情

   when :readable_first_initial
  [first_name, + ".", last_name].select(&:present?).join(" ").titleize 

我如何获得第一个角色?

1 个答案:

答案 0 :(得分:1)

使用String#[]

str = "ABCD"
str[0] # => "A"

因此,按照您的首选格式,您可以执行以下操作:

[first_name[0], ".", last_name].select(&:present?).join(" ").titleize

编辑:正如所指出的,这会增加额外的空间。如果您更喜欢这种格式,您可以这样做:

[first_name[0] + ".", last_name].select(&:present?).join(" ").titleize

如果您不喜欢使用+

,另一个选择是使用字符串插值
["#{first_name[0]}.", last_name].select(&:present?).join(" ").titleize