使用回形针上传多个文件

2024-03-16

我在使用回形针上传多个文件时遇到问题,

我的模型是这样的

slider has_many imgarrays

imgarrays has_many imageobjects

imageobjects have_attachment(as for paperclip)

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

这是我的 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\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:/var/folders/2s/n9wb5x4534nfs1cbrlph32v00000gp/T/RackMultipart20120723-53499-1lyi4yf>>, #<ActionDispatch::Http::UploadedFile:0x007fb471e99dc8 @original_filename="[email protected] /cdn-cgi/l/email-protection", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"slider[imgarrays][]\"; filename=\"[email protected] /cdn-cgi/l/email-protection\"\r\nContent-Type: image/png\r\n", @tempfile=#<File:/var/folders/2s/n9wb5x4534nfs1cbrlph32v00000gp/T/RackMultipart20120723-53499-10lala2>>, #<ActionDispatch::Http::UploadedFile:0x007fb471e99d50 @original_filename="greenButton.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"slider[imgarrays][]\"; filename=\"greenButton.png\"\r\nContent-Type: image/png\r\n", @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 %>

这是我的代码,可以很好地使用回形针上传多个文件: 我们可以使用嵌套属性或使用普通的简单方法来实现。

下面的代码显示了正常的方法:

User.rb

has_many:图像,:依赖=>:销毁

Image.rb

has_attached_file :头像, :styles => { :medium => "300x300>" }

属于:用户

用户/视图/new.html.erb

<%= form_for @user, :html => { :multipart => true } do |f| %>

...... 
 ....

<%= file_field_tag :avatar, multiple: true %>

<% end  %>

用户控制器:

.....

    if @user.save
     # params[:avatar] will be an array.
     # you can check total number of photos selected using params[:avatar].count
      params[:avatar].each do |picture|      
    
        @user.images.create(:avatar=> picture)
        # Don't forget to mention :avatar(field name)
    
      end
    end

就是这样。图片已上传,这可能不是好方法,但它有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用回形针上传多个文件 的相关文章

随机推荐

  • 实体框架 CTP4 代码优先:映射受保护的属性

    我想在模型上使用延迟加载集合 但我希望通过单独的方法来完成添加 删除功能 所以像这样 class Model protected virtual ICollection
  • 全局分区索引是否比非分区索引更好(更快)?

    我有兴趣了解对通常作为查询目标的数字列进行分区是否有性能优势 目前我有一个包含约 5000 万条记录的物化视图 当使用常规 B 树索引并按此数字列搜索时 我得到的成本为 7 查询结果大约需要 0 8 秒 使用非预置缓存 为该列添加全局哈希分
  • 如何设置每个组件的再磨刀设置

    我在一个代码库中工作 由于历史原因 并非所有项目都具有相同的编码约定 事实上 在一个 sln 中 我有需要不同命名约定的项目 有没有办法让 resharper 根据我正在编辑的文件所在的项目使用不同的设置 自 ReSharper 6 1 起
  • iOS7 中的警报视图显示白色矩形

    以下代码在 iOS 5 到 6 1 上完美运行 我什至有带有该代码的应用程序 void showActivityIndicator if mLoadingView mLoadingView UIAlertView alloc initWit
  • 谷歌关闭编辑器/所见即所得

    有人有使用 Google Closure Editor WYSIWYG 的经验吗 我正在考虑从 CKEDITOR 迁移到 Google Closure Editor WYSIWYG 理想情况下 我很想使用 etherpad 编辑器 但似乎没
  • ES7只由两个特性组成吗?

    根据这个博客 https webapplog com es7 es8 https webapplog com es7 es8 ES7的特点是 Array prototype includes 求幂运算符 这是正确的吗 如果是的话 为什么花了
  • 字符串值前面的“u”符号是什么意思? [复制]

    这个问题在这里已经有答案了 是的 简而言之 我想知道为什么我在我的键和值前面看到一个 u 我正在渲染一个表单 该表单具有特定标签的复选框和一个用于 IP 地址的文本字段 我正在创建一个字典 其键是硬编码在 list key 中的标签 字典的
  • ViewPager 和数据库

    数据位于数据库中 因此我通常会使用 CursorAdapter 并让它与 ListView 上的 CursorLoader 一起使用 但是现在我需要一个 ViewPager 而不是 ListView 它需要一个 PagerAdapter 而
  • Go 中的随机数组

    我尝试将以下 Python 代码翻译为 Go import random list i for i in range 1 25 random shuffle list print list 但发现我的 Go 版本又长又尴尬 因为没有 shu
  • 结合代码契约和正则表达式

    所以我有一个非常简单的类 其中一个字符串作为属性 该字符串必须具有一定的模式 我正在尝试使用代码合同来强制执行此操作 这个类看起来像这样 class SimpleClass public Property get set public Si
  • 在 UITableViewCell 中播放视频

    我正在尝试在单元格本身中播放视频 而不是全屏视频显示 我在用MPMoviePlayerController以此目的 我已经定义了 MPMoviePlayerController moviePlayer 在实施部分 Then in cellF
  • 查找 HTML5 表单用于验证的正则表达式

    一些 HTML5 输入元素接受pattern属性 它是用于表单验证的正则表达式 其他一些 HTML5 输入元素 例如 input type email自动进行验证 现在看来 跨浏览器处理验证的方式是不同的 给定一个特定的浏览器 比如 Chr
  • JSP/Servlet 中的倒计时器

    我正在使用 servlet jsp 开发在线考试 我需要在问题页面添加一个倒计时 hh mm ss 计时器 该计时器将结束考试并重定向到结果页面 除了计时器功能之外 我已经完成了所有其他功能 有人可以为此提供一些帮助吗 Thanks 您是否
  • 如何将本地数据存储数据导出到生产 Google App Engine 数据存储

    我想将本地数据存储数据导出到我的 google appengine 应用程序数据存储 有没有直接且简短的方法可以做到这一点 你可以阅读相关内容here http code google com appengine docs python t
  • STM32内部时钟

    我对 STM32F7 设备 意法半导体的 Cortex M7 微控制器 上的时钟系统感到困惑 参考手册没有充分阐明这些时钟之间的差异 SYSCLK HCLK FCLK 参考手册中阅读章节 gt RCC 为 Cortex 系统定时器 SysT
  • Angular 4 预定表单自动保存

    我正在尝试在 Angular 4 中实现表单数据自动保存 它应该像这样工作 用户更改表单中的某些数据 gt 调用对数据库的某些保存请求 我们假设这里启动了一些计时器 2 秒 在上一个保存请求之后的 2 秒内 所有更改都不会调用任何请求 以减
  • 为什么我的书呆子树有这些奇怪的字符

    尝试让 vim 设置顺利进行 我想让书呆子树发挥最佳状态 但是当我使用它时 它的每个部分前面都有这些字符 V 看起来像这样 V project V tools 我遇到了完全相同的问题 并且能够通过取消注释 UTF 8 并在 etc loca
  • 使用 HTML 和 CSS 扩展大括号

    有没有一种简单的方法可以模拟cases提供的环境amsmath在 LaTeX 中使用 HTML 和 CSS 例如 在 LaTeX 中 可以这样写 documentclass article usepackage amsmath begin
  • SQL Anywhere 11,JZ0C0:连接已关闭

    我开发基于 apache tomcat 6 0 26 apache cxf 2 2 7 spring 3 0 hibernate 3 3 和 sybase sqlanywhere 11 的 Web 服务 我使用 SYBASE jconn j
  • 使用回形针上传多个文件

    我在使用回形针上传多个文件时遇到问题 我的模型是这样的 slider has many imgarrays imgarrays has many imageobjects imageobjects have attachment as fo