当我做类似的事情时,这真的开始变得重复和笨重:
Name: <%= @user.name.present? ? @user.name : "Unknown" %>
我知道我可以做@user.name || "Unknown"
但据我所知,这不会处理空字符串。
是否有更短的方法?
答案 0 :(得分:6)
<%= @user.name.presence || "Unknown" %>
来自Rails官方文档:
<强>存在()强>
如果存在,则返回对象?否则返回nil。 object.presence等同于object.present? ?对象:没有。
http://api.rubyonrails.org/classes/Object.html#method-i-presence
答案 1 :(得分:0)
您可以添加辅助方法
def view_name( user, default="Unknown" )
user.name.present? ? @user.name : default
end
这样您的观点就是:
Name: <%= view_name( @user ) %>