TEL:400-8793-956
当前位置:程序、服务器

当我尝试获取第一个字符时,字符串为nil

提问者: 近期获赞: 浏览人数: 发布时间:2021-02-07 10:21:21

 问:因此,我尝试使用.first和[0]获取字符串中的第一个字符。我尝试了使用ruby docs的其他方法,但是即时通讯得到了相同的结果。我收到此错误:NoMethodError(nil:NilClass的未定义方法“ []”)。有任何想法吗?

 
def  to_h
属性。紧凑的。合并(PHOTO_URL :照片。网址,如first_name :如first_name ,姓氏:姓氏,last_name_initial :姓氏。第一)端           
 
仅当我尝试提取第一个字符时,“ last_name”为nil。没有第一我得到这个:
 
first_name : “ Lexie” ,
last_name : “ Johnson” ,
last_name_initial : “ Johnson”
 
 
答:从用户那里获取信息是我们构建应用程序时必须处理的常见任务。这通常发生在创建用户帐户,商业订单或其他任何时候应用程序必须询问“您是谁”的情况下。通常,我们会同时为名字和姓氏创建一个字段,以允许用户分隔其姓名,以使我们(应用程序开发人员)更容易显示一个或两个。在本文中,我将讨论如何格式化用户给应用程序提供的全名,而不必担心创建两个文本字段。当然,您可以在Rails应用程序的方法中使用此代码。
 
假设我有一个用于创意的变量,我将其称为“名称”,而“名称”具有值。
 
名字=“詹姆斯·伯爵·琼斯”
 
我只想显示我的“名称”值的名字和姓氏,我可以这样做:
 
名称= name.split
名字= names.first
姓氏= names.last
 
现在,这会将“名称”中的三个单词拆分为一个数组。然后,我将firstname设置为数组中的第一项,并将lastname设置为数组中的最后一项。
 
运行:
p“#{firstname}#{lastname}”
 
然后将输出:
“ James Jones”
 
我们如何执行另一个常见的格式设置任务,我们可以显示姓氏,然后用逗号分隔其余的名字,我们可以这样做:
 
 
名称=名称。拆分
姓氏=名称。流行名=剩余名称=名称
.join('')
 
在这里,我们再次拆分名称,然后放入pop方法,该方法将数组的最后一次从数组中拉出,然后返回它。这将只剩下剩下的名称作为firstname_remaining变量使用。我将数组的其余部分与用于firstname_remaining的空格连接在一起(其中将包括名字和任何剩余的名字信息,例如中间名)。
 
运行:
p“#{lastname},#{firstname_remaining}”
 
然后输出:
“琼斯,詹姆斯·伯爵”
 
最后,我最近看到的一个常见现象是在显示用户名时使用最后一个缩写。我们可以做这样的事情:
 
名称= name.split
名字= names.first
lastinitial = names.last [0,1]
 
在这里,我对lastinitial变量进行一些修整。您会看到带有括号和两个数字的内容。第一个数字是我正在修剪的字符串中的偏移量(零是第一个字母是字符串),第二个数字是我从该偏移量显示多少个字符。
 
运行:
p“#{firstname}#{lastinitial}。”
 
然后将输出:
“ James J.”
 
就是这样。当然,您可能会考虑将其适应于用户名末尾有“ Jr”的用户。–有时可以使用下拉菜单解决。我希望也许我已经向您介绍了您以前可能没有意识到的Ruby中的一些知识。直到下一次。
上一篇: 需要帮助无法弄清楚如何一次添加三个参数
下一篇: Sass基本问题