- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
实现后Null Object Pattern在 Rails 应用程序中(也在 RubyTapas 第 112 集中描述)我重构了一些代码,但有一个语法结构似乎不再起作用。
我曾经写过像 current_user || 这样的语句redirect_out
,如果设置了 current_user,它会返回它,如果它是 nil
,它会重定向出去,但现在 current_user
可能是 Null::User
,因此是“真实的”,并且该片段永远不会重定向。
我尝试定义 ||
运算符,但没有成功。有什么方法可以将此语法用于空(但“真实”)对象?
最佳答案
我认为您只是半途采用了该模式,并没有正确地采用它的精神。我的理解是该模式的真正目的是避免 ||
。
调用current_user || 应该有一些目的redirect_out
,这可能是用它做一些事情,或者获取它的一些属性。例如,假设您的代码具有:
(current_user || redirect_out).foo
当 current_user
不是 Null::User
的实例时,您想对其调用 foo
。在这种情况下,您应该做的是将 Null::User#foo
定义为 redirect_out
(可能后面还有一些操作,例如 foo
on其他类)。
class Null::User
def foo; redirect_out ... end
end
代替(current_user || redirect_out).foo
,你应该这样做
current_user.foo
当current_user
不是Null::User
实例时,它将调用foo
。当它是这样的实例时,redirect_out ...
例程将被调用。
关于ruby - 在 Ruby 中使 NullObject 评估为 falsy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17988923/
我有一个关于 javascript truthy/falsy 的问题 据我所知,包括负数在内的任何非零数都是真实的。但如果是这样,那为什么 -1 == true //returns false 还有
我正在尝试实现 Regula-Falsi 算法来求解 2(x^3)-x-2 的方程但问题是变量 c 值保持不变并且没有改变,即使我的代码应该改变它。 #include #include float f
我已经实现了 regula falsi 方法。我正在尝试对其进行修改,使其成为正割法。我读过的一份 pdf 提到它基本上是一样的,只是一个变化。 future 对我的“m”值的猜测应该有一个稍微不同的
我试图了解如何使用默认参数解构 falsy 和 null 值。以下是我运行过的一些示例: // #1 const person = { email: 'a@example.com' } const {
在 JavaScript 中有真值和假值的概念。 例如 0 :总是假的 1 : 始终为真 '0':始终为真 '1':始终为真 .NET 框架上的 C# 语言中是否有等效的真值和假值列表? 我想知道这个
据我所知,表达式不会在 Javascript 中的虚假值后执行。例如在下面的语句中: const result = undefined && 5; console.log(result); resul
我之前一直在阅读有关 JavaScript 提升的内容。 JavaScript Scoping and Hoisting by Ben Cherry Two words about “hoisting
我需要一个值为零的属性(0) 防暴模板: this.time = condition ? '10' : '0' 期望的结果: 但是,如果属性值为假,Riot 会自动忽略整个属性: 我目前的解决
我希望编制一份 ColdFusion 认为虚假和真实的值的完整列表。我所知道的有: //falsy values false "false" 0 "no" //truthy values true "
Ruby 对“真”和“假”有一个普遍的看法。 Ruby 确实有两个用于 boolean 对象的特定类 TrueClass 和 FalseClass ,其单例实例分别由特殊变量 true 和 false
我想将任何虚假值变为未定义,这样就不会将特定属性添加到生成的 JSON 对象中。 const response = { myValue: 'someString', errorMessage:
[] 和 {} 在 javascript 中是真实的。 但我想将它们视为 false,并且我很想知道如何以尽可能少的字符数来做到这一点:没有外部库或单独的函数,并且足够小以舒适地放在条件的括号之间。
我在 Mocha 中进行的测试因此错误而失败。 我已将 catch 语句放在每个 Promise 链的末尾,这些语句会抛出它们传递的任何错误,但从未被调用。 但是测试仍然失败,并出现以下错误: Err
我也在这方面画了一个空白。如果有人能帮助我理解为什么我的代码没有打印出预期的输出,我将不胜感激: def bool_to_str(bval): if bval is True:
实现后Null Object Pattern在 Rails 应用程序中(也在 RubyTapas 第 112 集中描述)我重构了一些代码,但有一个语法结构似乎不再起作用。 我曾经写过像 current
undefined 和 null 在 javascript 中是假的,但是, var n = null; if(n===false){ console.log('null'); } else{ con
在 JavaScript 中,您可以使用很好的 .filter 方法从数组中删除 null 或 falsy 值。到目前为止,我还没有找到从 JavaScript 对象中删除相同内容的方法。 为什么会这
我想创建一个组件并公开某些可以被父元素覆盖的属性。 这是一个例子。假设我正在创建一个具有自己颜色的按钮,但如果定义了 --button-bg-color 则允许更改其背景颜色: .my-button
我收到此错误:使用 gcm 推送通知时接收者 key “registrationTokens”的假值。 您可以在下面找到我的代码: Device.find({ user: { $in: users }
我正在用带有 Node js 的 selenium mocha 进行单元测试,我是新手,我想用拒绝 promise 进行测试,但它给了我这个错误:Promise rejected with no or
我是一名优秀的程序员,十分优秀!