繁体   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