Rails:显示用户名,如果用户不存在,则显示“匿名" [英] Rails: Display user name, if user not exist, display 'Anonymous' Instead
本文介绍了Rails:显示用户名,如果用户不存在,则显示“匿名"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我写:<%= @blog.user.name ||'匿名' %>
但是@blog.user为nil
时,会报undefined method name for nil:NilClass
如何解决这个问题并改为显示 Anonymous
?
But when @blog.user is nil
, it will report undefined method name for nil:NilClass
How to get around this and display Anonymous
Instead?
推荐答案
这是使用 ActiveSupport's
Object#try
方法:
This is perfect case to use ActiveSupport's
Object#try
method:
<%= @blog.user.try(:name) || 'Anonymous' %>
这样你就可以在 @blog.user
上调用 name
方法,只有当它响应这个方法时(如果它是 nil
).
This way you call name
method on @blog.user
only if it responds to this method (which isn't true if it's nil
).
这篇关于Rails:显示用户名,如果用户不存在,则显示“匿名"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文