activerecord association防止记录保存

时间:2010-07-27 20:06:55

标签: ruby-on-rails activerecord

我在两个模型之间有直接的关系:资​​产和更新。

这两个模型(减去不相关的方法):

http://pastie.org/1062627

我遇到了资产记录不再更新的问题。例如,一个简单的测试:

a = Asset.first ; puts a.description; a.description = "new" ; a.save ; puts a.errors ; puts Asset.first.description 

将生成:

"old"   {}    "old"

a.save返回true,a.errors为空;但是没有保存更改。

我浏览了我的Asset模型中的每个项目,试图找出导致它的原因,并发现如果我删除了'belongs_to:update'关系,那么一切正常。

但是如何与另一张桌子的关系,如果不涉及验证,可能会阻止记录保存,这是一个谜。 (另外如果是验证问题,那么@ asset.errors在保存尝试时不会为空。)

为了使事情变得更奇怪,我决定将我的Update模型重命名为Report model。有了它,它奏效了。因此,更新可能是模型的保留名称(似乎不太可能)。但是我不想重命名那个模型,除非我必须(它已经是太多的地方),所以我认为这里肯定有其他东西是错的或者我错过了。

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

调用关联“更新”是个问题。要加载资产的关联更新,您必须执行以下操作:

@asset.update

但更新是一个已由ActiveRecord定义的实例方法:

http://apidock.com/rails/ActiveRecord/Base/update