RoR:def to_s有两个名字/标签

时间:2016-10-19 14:32:06

标签: ruby activeadmin

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

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

在我的模特中:

def to_s
f_name
end

工作正常。但我怎么能得到姓氏? THX

3 个答案:

答案 0 :(得分:2)

您可以使用插值:

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

答案 1 :(得分:2)

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

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

def to_s
  full_name
end

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

答案 2 :(得分:1)

最简单的版本是返回一个串联两个名称部分的字符串:

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

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

def to_s
  return f_name + ' ' + s_name
end
相关问题