我已经定义了一个名为 ccy 的方法,它接受一个数字num
,确定货币(父 Record 模型的一个属性)并返回该数字乘以一个转换因子。在这种情况下,Self 指的是一个 Setting,它有许多自己的属性并且属于 Record。该方法在下面的设置模型中定义:
class Setting < ActiveRecord::Base
belongs_to :record
def ccy(num)
self.record.currency == "USD" ? ( num * 1 ) :
self.record.currency == "GBP" ? ( num * 0.616181 ) :
self.record.currency == "EUR" ? ( num * 0.70618 ) :
self.record.currency == "CAD" ? ( num * 0.97415 ) : nil
end
end
但是,这不起作用,因为在做了一些测试之后,我发现它self.record.currency
是 nil。因此,例如,当我尝试self.ccy(100)
在 rails 应用程序中执行类似操作时,我收到以下错误:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.*
或者这个,如果我在 nil 元素上使用某种运算符:
TypeError: nil can't be coerced into Fixnum
我在网上看了一会儿,我似乎无法弄清楚如何解决这个问题。帮助表示赞赏!