加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用回形针上传多个文件

发布时间:2020-12-16 21:57:37 所属栏目:百科 来源:网络整理
导读:我使用纸夹上传多个文件时遇到问题, 我的模型是这样的 slider has_many imgarraysimgarrays has_many imageobjectsimageobjects have_attachment(as for paperclip) 接收单个图像并在其他型号上使用回形针保存它没有问题,但是我不确定在多文件上传过程中如何
我使用纸夹上传多个文件时遇到问题,

我的模型是这样的

slider has_many imgarrays

imgarrays has_many imageobjects

imageobjects have_attachment(as for paperclip)

接收单个图像并在其他型号上使用回形针保存它没有问题,但是我不确定在多文件上传过程中如何处理由imgarrays param返回的数组.

这是我的rails服务器日志:

Started POST "/slider" for 127.0.0.1 at 2012-07-23 10:14:17 +0800
  Processing by SliderController#create as HTML
  Parameters: {"utf8"=>"?","authenticity_token"=>"7HcHtSlOsU/bnxb9emhAsSl/GFBraIE6NxwijHl3REM=","slider"=>{"question"=>"","answer"=>"","score"=>"","industry_name"=>"","imgarrays"=>[#<ActionDispatch::Http::UploadedFile:0x007fb471e99f30 @original_filename="Icon.png",@content_type="image/png",@headers="Content-Disposition: form-data; name="slider[imgarrays][]"; filename="Icon.png"rnContent-Type: image/pngrn",@tempfile=#<File:/var/folders/2s/n9wb5x4534nfs1cbrlph32v00000gp/T/RackMultipart20120723-53499-1lyi4yf>>,#<ActionDispatch::Http::UploadedFile:0x007fb471e99dc8 @original_filename="Icon@2x.png",@headers="Content-Disposition: form-data; name="slider[imgarrays][]"; filename="Icon@2x.png"rnContent-Type: image/pngrn",@tempfile=#<File:/var/folders/2s/n9wb5x4534nfs1cbrlph32v00000gp/T/RackMultipart20120723-53499-10lala2>>,#<ActionDispatch::Http::UploadedFile:0x007fb471e99d50 @original_filename="greenButton.png",@headers="Content-Disposition: form-data; name="slider[imgarrays][]"; filename="greenButton.png"rnContent-Type: image/pngrn",@tempfile=#<File:/var/folders/2s/n9wb5x4534nfs1cbrlph32v00000gp/T/RackMultipart20120723-53499-or2rdk>>]},"commit"=>"Create!"}
Completed 500 Internal Server Error in 18ms

ActiveRecord::AssociationTypeMismatch (Imgarray(#70206507050500) expected,got ActionDispatch::Http::UploadedFile(#70206487229960)):
  app/controllers/slider_controller.rb:12:in `new'
  app/controllers/slider_controller.rb:12:in `create'

Rendered /Users/Kinnovate/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.4ms)
Rendered /Users/Kinnovate/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.4ms)
Rendered /Users/Kinnovate/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.1.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (6.5ms)

用于滑块的new.html.erb

<div>
<%= form_for @slider,:url=>"/slider",:html => { :multipart => true } do |f| %>

      <%= f.label :question,"question"%>
      <%= f.text_field :question %> </br>
        <%= f.label :answer,"answer array (comma seperated)"%>
          <%= f.text_field :answer %>   </br>
        <%= f.label :score,"score"%>
     <%= f.text_field :score %> </br>
            <%= f.label :industry_name,"industry"%>
              <%= f.text_field :industry_name %>    </br>

        <%= f.label :attachedimg,"image"%>
         <%= f.file_field :imgarrays,:multiple =>:true %>  </br>

      <%= f.submit "Create",class: "btn btn-large btn-primary" %>
    <% end %>

</div>
<%= link_to 'Cancel',slider_index_path %>

解决方法

来源1: Multiple File Uploads with Rails and Paperclip

来源2:http://emersonlackey.com/article/paperclip-with-rails-3

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读