這是真的開始尋找重複和笨重的,當我做這樣的事情: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'。 –