ActiveRecord :: AssociationTypeMismatch(动态图像上传器)

时间:2011-07-16 16:38:42

标签: ruby-on-rails-3 nested-attributes image-uploading

我正在尝试按照教程 Dynamic multiple image uploads with Ruby on Rails 创建照片的新模型,并将它们与其他模型相关联。复制并粘贴所有代码后,我收到“AssociationTypeMismatch”错误,如下所示。

 ActiveRecord::AssociationTypeMismatch in AdminForksController#update
 Photo(#2176152540) expected, got Array(#2148417160)
 app/controllers/admin_forks_controller.rb:23:in `update'
 {   "commit"=>"update",
     "fork"=>{"position"=>"",
              "name"=>"FORK",
              "brand"=>"",
               "photos"=>{"data"=>#<ActionDispatch::Http::UploadedFile:0x103634328 @headers="Content-
               Disposition: form-data; name=\"fork[photos][data]\"; filename=\"marty.jpg\"\r\nContent-Type:
               image/jpeg\r\n", @tempfile=#<File:/var/folders/cZ/cZVO8X55FeynZw5cHRz1UE+++TI
               /-Tmp/RackMultipart20110716-18721-16ttjsd-0>, @content_type="image/jpeg",
               @original_filename="marty.jpg">},
     "authenticity_token"=>"iSzZxyzTe/LDLIf4cQiYBGLIk96INnKCP3SC5b5MXHw=",
     "utf8"=>"?",
     "id"=>"7"}

我的forks模型看起来像这样:

class Fork < ActiveRecord::Base
    has_many :photos
    accepts_nested_attributes_for :photos, :allow_destroy => true
end

我的照片模型看起来像这样:

class Photo < ActiveRecord::Base
    belongs_to :fork
    has_attached_file :data
end

看起来:photos作为数组传递,:fork期待它。我该如何解决这个问题?

更新

问题已解决(请参阅答案)。但是,:fork@fork这两个变量有何不同?

1 个答案:

答案 0 :(得分:1)

问题解决了。在for_for我使用:fork而不是@fork