我正在使用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:integer,artifact_container_type_id: 整数,party_id:整数,parent_id:整数,folder_id:整数, filing_center_group_id:integer,artifact_source_type_id:integer, display_date:datetime,record_date:date,display_name:string,path: string,file:string,description:string,type:string,recycled: boolean,abandoned_date:datetime,signed:boolean,phr:boolean, record_status_id:integer,created_at:datetime,updated_at:datetime, lock_version:integer,lft:integer,rgt:integer)
相同的代码在rails-2中运行良好。请指导我如何解决这个问题
答案 0 :(得分:1)
如果您使用acts_as_tree,则可以执行此操作。
来自acts_as_tree或您只拥有的其他系统 PARENT_ID?没问题。只需添加lft&amp; rgt字段如上,和 然后运行:
Category.rebuild!
您的树将转换为有效的嵌套集。真棒:
在您的情况下,您可以尝试:
ArtifactImage.rebuild!
答案 1 :(得分:0)
如果您在评论中说ArtifactImage表需要所有值,则需要确保所有值都已填充,这是没有发生的,因为您有nil值。而不是拥有那些id值,你不能在对象之间建立关系吗?我会更有意义。