Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中编写一个助手来获得第一个初始值。姓_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何在rails中编写一个助手来获得第一个初始值。姓

Ruby on rails 如何在rails中编写一个助手来获得第一个初始值。姓,ruby-on-rails,Ruby On Rails,:readable_full=>Mike A Smith :readable_short=>迈克·史密斯 现在我想做这样的事情 :可读的\u第一个\u首字母=>M.Smith 假设是这样的 def formatted(format) case format when :readable_full [first_name, middle_initial, last_name].select(&:present?).join(" ").titleize when :rea

:readable_full=>Mike A Smith :readable_short=>迈克·史密斯

现在我想做这样的事情 :可读的\u第一个\u首字母=>M.Smith

假设是这样的

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
如何获取第一个字符?

使用字符串[]

因此,按照您喜欢的格式,您可以:

str = "ABCD"
str[0] # => "A"
[first_name[0], ".", last_name].select(&:present?).join(" ").titleize
编辑:如前所述,这将增加额外的空间。如果您喜欢此格式,可以执行以下操作:

str = "ABCD"
str[0] # => "A"
[first_name[0], ".", last_name].select(&:present?).join(" ").titleize
如果您不喜欢使用+,另一个选项是使用字符串插值:

我越来越害怕了。Smith可以告诉我如何去掉M和之间的空格。可能类似于[{first_name[0]},last_name]。选择&:present?.join.titleize会有所改进吗?然而,这将导致严重后果。史密斯,如果名字是空的。
["#{first_name[0]}.", last_name].select(&:present?).join(" ").titleize