0

我正在使用 rails 3.2 和 ruby​​ 1.9.2。当我尝试使用分配的哈希值创建记录时,它会引发ArgumentError (comparison of Fixnum with nil failed)异常。我的源代码是

doc = ArtifactImage.create!(vars)

下面列出了 Image 的值和架构。

vars : {:parent=>#<ArtifactContainer id: 23, artifact_container_type_id: 2, party_id: 11, parent_id: 21, folder_id: nil, filing_center_group_id: nil, artifact_source_type_id: nil, display_date: nil, record_date: nil, display_name: "Pictures", path: "/bathakarai/Pictures", file: nil, description: nil, type: "ArtifactContainer", recycled: false, discarded_date: nil, signed: false, phr: true, record_status_id: 1, created_at: "2013-07-19 04:29:39", updated_at: "2013-07-19 04:29:39", lock_version: 2, lft: nil, rgt: nil>, :file=>"clip-art-tom-and-jerry-381931.jpg", :display_name=>"Pictures", :artifact_source_type_id=>3, :party_id=>11, :folder_id=>nil}

ArtifactImage:ArtifactImage(id:整数,artifact_container_type_id:整数,party_id:整数,parent_id:整数,folder_id:整数,filing_center_group_id:整数,artifact_source_type_id:整数,display_date:日期时间,record_date:日期,display_name:字符串,路径:字符串,文件:字符串,描述:字符串,类型:字符串,回收:布尔值,discarded_date:日期时间,签名:布尔值,phr:布尔值,record_status_id:整数,created_at:日期时间,updated_at:日期时间,lock_version:整数,lft:整数,rgt:整数)

相同的代码在 rails-2 中运行良好。请指导我如何解决这个问题

4

2 回答 2

1

如果您使用acts_as_tree,您可以这样做。

来自acts_as_tree 或其他只有parent_id 的系统?没问题。只需像上面一样添加 lft & rgt 字段,然后运行:

Category.rebuild!

您的树将转换为有效的嵌套集。惊人的!:

在您的情况下,您可以尝试:

ArtifactImage.rebuild!

act_as_tree 的更多详细信息文档

于 2016-09-28T04:36:28.923 回答
0

如果您在评论中说 ArtifactImage 表需要所有值,则需要确保填充所有值,这不会发生,因为您有 nil 值。除了拥有这些 id 值之外,您不能在对象之间建立关系吗?我会更有意义。

于 2013-08-22T08:04:28.467 回答