Ruby on rails .模型中的更新-参数数目错误(0表示1)

Ruby on rails .模型中的更新-参数数目错误(0表示1),ruby-on-rails,model,Ruby On Rails,Model,在我的订单模型中,我有下面的回调。直到最后一行,我尝试更新1 invoice属性并在invoice模型中触发after_update回调,但在使用.update()方法时收到错误数量的参数(0代表1) 以下内容可作为解决方案: invoice.update_column(:statement_id, statement.id) invoice.save 为什么第一种方法不能像我预期的那样工作?谢谢 更新是一种类方法。这应该起作用: Invoice.update(invoice.id, :sta

在我的订单模型中,我有下面的回调。直到最后一行,我尝试更新1 invoice属性并在invoice模型中触发after_update回调,但在使用.update()方法时收到错误数量的参数(0代表1)

以下内容可作为解决方案:

invoice.update_column(:statement_id, statement.id)
invoice.save

为什么第一种方法不能像我预期的那样工作?谢谢

更新是一种类方法。这应该起作用:

Invoice.update(invoice.id, :statement_id => statement.id)
还可以使用update_属性

invoice.update_attribute('statement_id', statement.id)

update是一个类方法。这应该起作用:

Invoice.update(invoice.id, :statement_id => statement.id)
还可以使用update_属性

invoice.update_attribute('statement_id', statement.id)
方法仅在类级别可用

使用其中一个

invoice.update_attribute(:statement_id, statement_id) #validations will be skipped

不要使用
update\u列
,因为当使用
update\u列
更新时,将跳过
验证
回调
,方法仅在类级别可用

使用其中一个

invoice.update_attribute(:statement_id, statement_id) #validations will be skipped


不要使用
update\u列
,因为使用
update\u列
更新时将跳过
验证
回调
,谢谢,这很有效。我在我的应用程序中使用了相同的语法(更新变量,而不是类),并且它工作正常。知道为什么会这样吗?谢谢,这很有效。我在我的应用程序中使用了相同的语法(更新变量,而不是类),并且它工作正常。你知道为什么会这样吗?