`

不能对 nil 对象进行 + 操作的一种 可能

 
阅读更多
  after_create :after_create_warehousing
  def after_create_warehousing
    m = self.material
    m.stock += self.qty
    m.total += ( self.qty * self.price )
    m.save
  end

运行时出错,说 不能对 nil 对象进行 + 操作,
检查了半天,才发现,是 m.stock 在数据库没有值,
也就是,m.stock 就是 nil
结果把数据库中的m.stock赋上初始值 ,0也可,
出库问题解决
分享到:
评论

相关推荐

    IOS 开发之对象为空的判断(nil、null)详解

    本文将深入探讨两种常见的空值表示——`nil`和`null`,以及如何针对不同类型的对象进行有效的空值判断。 首先,`nil`是Objective-C中的关键字,用于表示指向对象的指针没有指向任何实际的对象,也就是说,这个指针...

    nil:PHP 中一个非常棒且合理的空对象实现

    空对象模式是一种行为设计模式,它创建了一个表示“无”或“不存在”的对象,这个对象可以代替`null`值,避免程序中的条件检查和空指针异常。在面向对象设计中,空对象模式可以提高代码的可读性和可维护性。 2. **...

    delphi对象参数调用

    在Delphi编程中,对象参数调用是一种常见的编程实践,它涉及到传递对象实例作为函数或方法的参数。这种技术在面向对象编程中非常关键,因为它允许我们通过引用而不是拷贝来操作对象,从而提高效率并简化代码。下面将...

    设计模式-空对象模式

    空对象模式是一种行为设计模式,它提供了一个默认行为,当对象不存在或者不能执行某项操作时,可以使用这个默认行为作为替代,避免程序出现异常或空指针引用。在iOS开发中,空对象模式的应用可以帮助我们更好地处理...

    iphone 对象转成字典

    而字典,无论是Objective-C的NSDictionary还是Swift的Dictionary,是一种键值对的数据结构,能够方便地存储和检索数据。 在Objective-C中,我们可以利用NSKeyedArchiver类来实现对象到字典的转换。首先,我们需要...

    Go语言interface 与 nil 的比较

    在Go语言中,`interface`是一种特殊的类型,它允许存储任何类型的数据,只要该数据类型实现了接口中定义的所有方法。接口由一组方法签名定义,不包含任何具体的数据字段。Go的鸭子类型(duck typing)使得类型只需...

    Dlephi链表实现栈操作_delphi_

    在Delphi编程环境中,链表是一种非常重要的数据结构,它能高效地进行插入、删除等操作,尤其适合处理动态变化的数据。本主题将探讨如何基于双向链表来实现栈的操作,这是一种灵活且实用的方法。 首先,我们需要理解...

    Lua面向对象.zip

    Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统和服务器配置等领域。在Lua中,虽然没有像Java或C++那样的类和继承机制,但它提供了基于表的简单而强大的面向对象编程(OOP)模型。这个"Lua面向对象.zip...

    NSObjectSafe:Swizzle Foundation容器的常用功能可防止nil崩溃

    然而,处理`nil`对象时常会导致程序崩溃,特别是当调用一个不存在的方法时,会触发“unrecognized selector sent to instance”错误。为了解决这个问题,开发者们创造了一种技术叫做`Swizzling`,它允许我们在运行时...

    防止崩溃的措施

    在iOS中,对象默认不能为nil,因此将nil对象添加到集合会导致崩溃。使用可选类型(Swift中的Optional)和nil合并运算符(?.)可以确保只有非nil的对象才会被添加。对于Objective-C,可以使用NSNull对象来代表空值,...

    iphoe通过对象归档实现数据持久化

    对象归档是苹果的Foundation框架提供的一种机制,它能够将Objective-C的对象转换为字节流(即序列化),然后存储到磁盘上,如SQLite数据库、plist文件或二进制文件。当需要时,这个字节流可以读回并恢复成原来的对象...

    Delphi7 及Delphi2010下用GDI+实现颜色渐变

    颜色渐变是指从一种颜色平滑过渡到另一种颜色的过程,可以是线性的,也可以是径向的。在编程中,这通常通过指定起始颜色、结束颜色以及过渡的方式(如角度或方向)来实现。 在Delphi 7和Delphi 2010中,我们可以...

    iOS runtime 方式归解档,存储多对象

    总结来说,iOS中的runtime归档与解档是一种强大的工具,它允许我们在运行时动态处理对象,无需关心对象的属性增删。通过遵循`NSCoding`协议并结合runtime特性,我们可以灵活地存储和恢复多个对象,实现数据持久化。

    正确使用多线程同步锁@synchronized()1

    如果传入的对象为`nil`,`@synchronized`将不执行任何同步操作,因此你需要特别留意传入的对象生命周期,避免在对象已经被释放后仍然尝试对其进行同步。 在上述代码片段中,`id2data(obj, ACQUIRE)`和`id2data(obj,...

    OC-监听操作是否结束NSInvocationOperation

    `NSOperation`是一个抽象基类,为并发编程提供了一种更为灵活的方式,它可以被用来构建复杂的操作队列。`NSInvocationOperation`是`NSOperation`的一个具体实现,它通过`NSInvocation`对象来封装一个方法调用,然后...

    iOS中json解析出现的null,nil,NSNumber的解决办法

    在iOS开发中,JSON是一种广泛使用的轻量级数据交换格式,尤其在与服务器进行通信时。然而,处理JSON数据时可能会遇到一些问题,比如解析出的`null`、`nil`以及`NSNumber`类型的困惑。这里我们将深入探讨如何解决这些...

    理解 Monad.ec7c2600-28aa-11e7-bc3c-7b576b2949e6.pdf

    Monad是一种设计模式,常见于函数式编程,它是一种抽象的容器类型,能够通过一系列操作来封装对象,进行变换,并允许在受限的上下文中执行操作。Monad可以处理副作用,如输入输出操作,并提供了一种方式进行错误处理...

    The-Complete-Guide-to-Understanding-Swift-Optionals pdf

    在这种情况下,使用Optionals可以在值不存在时进行适当的操作,而不是导致程序崩溃。 Swift为处理Optionals提供了多种方式: 1. 强制解包(Forced Unwrapping):通过在Optionals变量后加感叹号“!”来强制解包,...

    CC++程序员的Lua快速入门指南

    最后,Lua中的nil类型与C中的NULL类似,但nil是一种特殊的类型,表示“没有值”或者“不存在”的状态,而不是一个空指针。 本文的重点在于为有经验的C/C++程序员提供快速入门Lua的指南,帮助他们快速掌握Lua语言的...

Global site tag (gtag.js) - Google Analytics