微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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).如果是,则返回空字符串.如果不是,则将其拆分为空格并返回结果数组中的第一项.

原文地址:https://www.jb51.cc/ruby/269566.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐