簡體   English   中英

如何禁用“nil:NilClass 的未定義方法”錯誤?

[英]How to disable the “undefined method for nil:NilClass” error?

我的控制器和視圖中有一堆類似current_user.articlescurrent_user.name的代碼。 顯然,當沒有當前用戶時,這會導致錯誤。 我可以一直寫類似current_user && current_user.articles的東西,但這是重復的。

如果在 current_user 上調用方法,但 current_user 不存在,是否有某種方法可以禁用此錯誤消息並僅返回警告?

與其禁用錯誤(這似乎不是一個特別棒的主意),不如考慮使用 ruby 安全導航運算符, &. .try

請注意,有些人( 這里是一個示例)將此視為代碼異味。 但是,IMO 比禁用NoMethodError更臭。

您可以在訪問任何 object 方法或屬性之前使用&來避免錯誤。 這樣,如果 object 為 nil,則&之后的所有鏈都將被避免,結果將為 nil。

current_user&.name # User name if current_user exists, nil otherwise

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM