ruby-on-rails – 创建名称助手,将名字和姓氏分开

我正在寻找一些关于如何获取属性并通过方法处理它以返回不同内容的帮助.但我以前从未这样做过,我不确定从哪里开始.我想改变一个名字:字符串属性从“乔治华盛顿”或“约翰昆西亚当斯”变成名字只有“乔治”和“约翰”.

我想也许帮助方法最好,比如

users_helper.rb

def first_name

end

然后调用@ user.name.first_name,这最初是如何工作的?有人可以解释我下一步可以将@ user.name传递给方法吗?我见过这样的事情,但不太明白括号……

def first_name(name)
  puts name
end

有人可能会破坏rails / ruby​​这种类型的东西吗?非常感谢!

解决方法

括号(可选)括起参数列表.
def first_name(full_name)
  full_name.split(" ")[0]
end

这假设参数不是nil.

> puts first_name "Jimmy McKickems"
Jimmy
> puts first_name "Jeezy"
Jeezy

但这不是一个字符串方法,因为你的假设现在是:

@user.full_name.first_name # Bzzt.

代替:

first_name @user.name

这可以包含在模型类本身中:

class User < ActiveRecord
  # Extra stuff elided

  def first_name
    self.full_name.blank? ? "" : self.full_name.split(" ")[0]
  end
end

额外的代码检查名称是否为空或空格(空白?来自Rails).如果是,则返回空字符串.如果不是,则将其拆分为空格并返回结果数组中的第一项.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...