使用jQuery fileupload插件时,TypeError(无法将Symbol转换为Integer)

时间:2012-11-20 19:57:36

标签: jquery ruby-on-rails-3 jquery-plugins

我使用jQuery fileupload插件上传多张图片。检查发送到服务器的数据,它是:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"pE6KRzQv05wwcutCRN0UlZ3Cy39cNAtEYCMbkoVtwBQ=", "poll"=>{"title"=>"fjijgg", "category"=>"1", "items_attributes"=>{"brand"=>"item 3", "photo"=>[#<ActionDispatch::Http::UploadedFile:0x007fe609c377a0 @original_filename="Photo Nov 20, 1 19 44 AM.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"poll[items_attributes[photo]][]\"; filename=\"Photo Nov 20, 1 19 44 AM.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/3s/xggrbr6119v_mtcqn9r0b6tr0000gn/T/RackMultipart20121120-1465-d21tys>>]}}}

民意调查和项目模型设置为:

class Item < ActiveRecord::Base
  attr_accessible :photo, :photo_url, :poll_id, :brand, :number_of_votes,:description, :is_deleted
  has_attached_file :photo,
                    :styles => { :thumbnail => "100x100#",
                                   :small => "150x150>",
                                   :medium => "250x250>",
                                   :large => "400x400>" },
                    :storage => :s3,
                    :s3_credentials => S3_CREDENTIALS,
                    :url=>"/item_:id/created_at_:created_at/:style.jpg"
  belongs_to :poll
end

class Poll < ActiveRecord::Base
    attr_accessible :title, :user_id, :category, :items_attributes
    belongs_to :user
    has_many :items, :dependent => :destroy
    accepts_nested_attributes_for :items
    default_scope :order => 'polls.created_at DESC'
end

民意调查控制器:

class PollsController < ApplicationController
  def create
    @poll=Poll.create(params[:poll])
    redirect_to @poll
  end
end

我收到了错误:

TypeError (can't convert Symbol into Integer):

我认为这是由“items_attributes”=&gt;引起的{...}。有关如何修复它的任何建议吗?

由于

1 个答案:

答案 0 :(得分:3)

我发现由于它是一对多关联,即民意调查有很多项,它应该看起来像“items_attributes”=&gt; [{..}]而不是“items_attributes”=&gt; {..}