Rails:显示用户名,如果用户不存在,则显示“Anonymous”

时间:2014-03-10 13:01:29

标签: ruby-on-rails

我写道:<%= @blog.user.name || 'Anonymous' %>

但是当@ blog.user为nil时,它会报告undefined method name for nil:NilClass 如何绕过这个并显示Anonymous而不是?

2 个答案:

答案 0 :(得分:15)

这是使用ActiveSupport's Object#try方法的完美案例:

<%= @blog.user.try(:name) || 'Anonymous' %>

这样,只有在name响应此方法时才会调用@blog.user方法(如果它nil,则不是真的。)

答案 1 :(得分:3)

我会用这个吗?操作

<%= @blog.user ? @blog.user.name : 'Anonymous' %>