作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一个想要保留已删除用户帖子的Post belongs_to :user
的应用程序。当查看作者被删除的帖子时,这可能导致 View 错误。我试图做到这一点:
class Post < ActiveRecord::Base
belongs_to :author, class_name: 'User', foreign_key: 'user_id'
def author
author || NullUser.new
super
end
end
class Post < ActiveRecord::Base
belongs_to :user
def author
user || NullUser.new
end
def author=(user)
self.user = user
end
end
最佳答案
为了回答您的问题,
1. def author
2. author || NullUser.new
3. super
4. end
author
方法。然后在第2行中,您再次调用该author方法!这一直在发生,并且您会得到堆栈级别太深的错误。正确的方法是
def author
super || NullUser.new
end
super
时出现nil错误,则添加一个附加的nil检查:
def author
(super || NullUser.new) rescue NullUser.new
end
def author
(super rescue nil) || NullUser.new
end
关于ruby-on-rails - 在Rails中实现NullObject模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17127358/
我有一个类,偶尔会为 File 对象传递 null 。在正常操作期间,它使用 Scanner 类来解析文件。 我认为我可以将 File 替换为 nullobjects(Gang of四种风格)。 但是
我一直在使用 Groovy 五个小时,但刚刚遇到了 Groovy NullObject .我读了 Groovy explanation of the Null Object Pattern ,但它不涉
NullObjectPattern旨在成为“安全”(中立)行为。 这个想法是创建一个不做任何事情的对象(但也不抛出 NullPointerException ) 例如定义为的类: class Empl
是的,这听起来有点雄心勃勃,但这是我想要实现的目标: 我有一个类保存我的热Observable,类需要一些时间来正确准备它(在另一个地方创建它并获得引用),所以当另一个类要求它时,引用可能仍然为空(导
实现后Null Object Pattern在 Rails 应用程序中(也在 RubyTapas 第 112 集中描述)我重构了一些代码,但有一个语法结构似乎不再起作用。 我曾经写过像 current
我是一名优秀的程序员,十分优秀!