【问题标题】:undefined method for nil:NilClass refactoring?nil 的未定义方法:NilClass 重构?
【发布时间】:2013-01-28 04:39:53
【问题描述】:

在交易中,有时客户没有service_id,因为他们没有向购物车添加额外的服务。问题是,transactions 索引页面在线返回undefined method 'name' for nil:NilClass

<%= transaction.service.name %>

有没有比

更好的方法
<%= transaction.service.present? ? transaction.service.name : nil %>

我发现了这篇NULL OBJECT PATTERN 文章。不太明白它如何应用于我的场景。

【问题讨论】:

  • 你用null-object-pattern标记了这个问题?你真的知道这种模式吗(因为这是一种去这里的方式)或者你只是选择了那个标签,因为它以null-object开头?

标签: ruby-on-rails refactoring null-object-pattern


【解决方案1】:

或者你可以这样做:

transaction.service.try(:name)

如果 service 不是 nil,它会返回它的名字。否则它将返回nil

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多