2014-01-06 78 views

回答

1

Try @ user.try(:name),如果@user爲零,則此wilk返回nil。

0

如果你是在多個地方做這件事,我可能會採取@ 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 

當然它可能會更有助於讓他們在這一點上的鏈接。

+0

非常感謝,但我一直在尋找更通用的解決方案,以驗證是否存在任何實例變量或屬性。 –

+0

在這種情況下,你是否認爲像[空對象](http://robots.thoughtbot.com/rails-refactoring-example-introduce-null-object)? – csexton

+0

有趣,謝謝! –