我写道:<%= @blog.user.name || 'Anonymous' %>
但是当@ blog.user为nil
时,它会报告undefined method name for nil:NilClass
如何绕过这个并显示Anonymous
而不是?
答案 0 :(得分:15)
这是使用ActiveSupport's
Object#try
方法的完美案例:
<%= @blog.user.try(:name) || 'Anonymous' %>
这样,只有在name
响应此方法时才会调用@blog.user
方法(如果它nil
,则不是真的。)
答案 1 :(得分:3)
我会用这个吗?操作
<%= @blog.user ? @blog.user.name : 'Anonymous' %>