这是真的开始寻找重复和笨重的,当我做这样的事情:x.present的更短路吗? ? X:
Name: <%= @user.name.present? ? @user.name : "Unknown" %>
我知道我可以做@user.name || "Unknown"
但这并不至于我知道处理空字符串。
有没有更简单的方法?
这是真的开始寻找重复和笨重的,当我做这样的事情:x.present的更短路吗? ? X:
Name: <%= @user.name.present? ? @user.name : "Unknown" %>
我知道我可以做@user.name || "Unknown"
但这并不至于我知道处理空字符串。
有没有更简单的方法?
<%= @user.name.presence || "Unknown" %>
从Rails的官方文档:
存在()
返回对象,如果它的存在?否则返回零。 object.presence相当于object.present? ?对象:无。
http://api.rubyonrails.org/classes/Object.html#method-i-presence
非常感谢! – Ryan
你可以添加一个辅助方法
def view_name(user, default="Unknown")
user.name.present? ? @user.name : default
end
,使您的观点只是:
Name: <%= view_name(@user) %>
你可能寻找''.empty但肯定Rails的?增加了一些东西来增强它。 :) – vgoff
仅供参考,只有'nil'和'false'在布尔表达式中被评估为false,即。空字符串是'true'。 –