RoR:def to_s 两个 names/labels

RoR: def to_s for two names/labels

我正在使用 def to_s 将用户的数值更改为字符串。

虽然用户有名字和姓氏 - f_name 和 s_name。

在我的模型中:

def to_s
f_name
end

工作正常。但是我怎样才能得到姓氏呢??谢谢

可以使用插值:

def to_s
  "#{f_name} {l_name}" # or f_name + ' ' + l_name
end

最简单的版本是 return 一个字符串连接两个名称部分:

def to_s
  "#{f_name} #{s_name}"
end

在 Ruby 中,方法中的最后一个值是隐含的 return 值。有更明确的方法可以做到这一点,以及其他连接字符串的方法。你也可以这样做:

def to_s
  return f_name + ' ' + s_name
end

如果您可能只有名字或姓氏,请考虑:

def full_name
  [first_name, last_name].compact.join(' ')
end

def to_s
  full_name
end

无论你使用什么技术,我都建议你创建一个方法来表达全名,然后在 to_s 方法中引用它。