在視圖我通常檢查這樣一個值的存在:獨立helper_method檢查是否存在,例如@ user.name如果存在?
<%= @user.name if @user.name.present? %>
是否存在短的東西,理解我的意圖,而不是需要重複我要檢查什麼?我在找像下面這樣:
<%= @user.name if existent? %>
如果不存在,纔有可能構建的這個是helper_method(如果有的話,怎麼樣)?
在視圖我通常檢查這樣一個值的存在:獨立helper_method檢查是否存在,例如@ user.name如果存在?
<%= @user.name if @user.name.present? %>
是否存在短的東西,理解我的意圖,而不是需要重複我要檢查什麼?我在找像下面這樣:
<%= @user.name if existent? %>
如果不存在,纔有可能構建的這個是helper_method(如果有的話,怎麼樣)?
Try @ user.try(:name),如果@user爲零,則此wilk返回nil。
如果你是在多個地方做這件事,我可能會採取@ zrl3dx的建議,並將其提取到幫手中。
在app/helpers
只需創建一個Ruby文件,如user_helper.rb
module UserHelper
def current_user
@user.try(:name)
end
end
那麼在你看來,你可以只使用:
<%= current_user %>
這也提供了一個很好的方式,讓一個默認值。說你想說的話,當用戶不存在「未登錄」:
module UserHelper
def current_user
@user.try(:name) || "Not logged in"
end
end
當然它可能會更有助於讓他們在這一點上的鏈接。
非常感謝,但我一直在尋找更通用的解決方案,以驗證是否存在任何實例變量或屬性。 –
在這種情況下,你是否認爲像[空對象](http://robots.thoughtbot.com/rails-refactoring-example-introduce-null-object)? – csexton
有趣,謝謝! –