2016-10-19 29 views
0

我正在使用def to_s将用户的数字值更改为字符串。RoR:def to_s用于两个名称/标签

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

在我的模型:

def to_s 
f_name 
end 

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

+0

用户是否总是有名字和姓氏? – Stefan

回答

2

如果有可能,你只有一个名字或姓氏,然后再考虑:

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

def to_s 
    full_name 
end 

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

2

可以使用插值:

+2

我更喜欢使用字符串插值的版本,因为当'f_name'为'nil'时,使用'+'连接字符串的版本会失败。 – spickermann

+2

@spickermann对我来说,字符串插值总是看起来更好,所以+1 –

1

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

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

在Ruby中,在方法的最后一个值是暗示返回值。有更明确的方法来完成此操作,以及其他方式来连接字符串。你可以这样做,以及:

def to_s 
    return f_name + ' ' + s_name 
end 
+0

谢谢!两种方法都有效。非常感谢:)不能打勾几分钟! – Co2

+0

无需“返回”.. –