Tag: carrierwave

Carrierwave,Rails 4和多个上传

我一直在撞墙试图让Carrierwave,Rails 4和Multiple Uploads一起工作。 我可以让单个文件上传工作得很好,就像在这个和许多其他项目中一样。 这不是嵌套的情况 – 只需上传到名为Transcription的单个模型,并希望为上传的每个文档创建记录。 我似乎找不到正确的方法来声明用于载波装载的“文档”字段 mount_uploader :document, DocumentUploader 作为要识别的强参数的数组。 我试过白名单: whitelisted[:document] = params[:transcription][‘document’] , 将“document”声明为数组: params.require(:transcription).permit(….. ,:document => []) params.require(:transcription).permit(….. , { document: [] }) 这似乎更像是我为嵌套模型声明数组,但我真的希望Rails 4的强参数只是看到file_field创建的“document”数组,:multiple => true 即。 来自日志: form-data; name=\”transcription[document][] form-data; name=\”transcription[document][] 有没有人在Rails 4中使用强参数成功完成多次上传? 如果是这样,请分享一下? 谢谢… 干杯, 法案

使用Carrierwave(HTML5)一次上传多个文件到Rails应用程序

我很接近……非常接近……我能够上传单个文件就好……但是当我将表单的file_field类型更改为:multiple => true我可以一次上传多个图像上传的文件被包装在一个数组中……’accepts_nested_attributes_for`的’魔力’丢失了。 编辑:经过更多的考试,我想知道我是否需要打扰accepts_nested_attributes_for ? 也许我应该在我的Gallery表单中有一个file_field, :multiple => true (而不是嵌套表单),然后在我的创建操作中创建新的库,然后循环遍历params[:gallery][:photos_attributes][“0”][:image]中的每个元素params[:gallery][:photos_attributes][“0”][:image]数组,可以这么说,为每个元素调用@gallery.photos.create 。 ?!? 看起来很麻烦……但我能想到的就是这些。 希望有更多Rails经验的人可以加入…… PARAMS: {“utf8″=>”✓”, “authenticity_token”=>”9jXvIwcllct7UyUfo6cvhEucQf2u3SY50SuaCLtFO4c=”, “gallery”=>{ “name”=>”First Gallery”, “photos_attributes”=>{“0″=>{ “image”=>[ #<ActionDispatch::Http::UploadedFile:0x00000104b78978 @original_filename="first_test_image.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"gallery[photos_attributes][0][image][]\"; filename=\"first_test_image.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#>, #<ActionDispatch::Http::UploadedFile:0x00000104b78950 @original_filename="second_test_image.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"gallery[photos_attributes][0][image][]\"; filename=\"second_test_image.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#> ] } } }, “commit”=>”Save”, “action”=>”create”, “controller”=>”galleries”} #app/models/gallery.rb class Gallery :destroy accepts_nested_attributes_for :photos end #app/models/photo.rb […]

Excon ::错误::禁止(预期(200)实际(403禁止)

当我尝试将图片上传到“Car”对象时,我被拒绝访问S3。 但是,由于我添加了S3,因此资源文件夹中的站点图像显示得很好。 我得到的具体错误是: 2015-02-17T14:40:48.459629+00:00 app[web.1]: Excon::Errors::Forbidden (Expected(200) Actual(403 Forbidden) 2015-02-17T14:40:48.459630+00:00 app[web.1]: excon.error.response 2015-02-17T14:40:48.459635+00:00 app[web.1]: “Connection” => “close” 2015-02-17T14:40:48.459637+00:00 app[web.1]: “Content-Type” => “application/xml” 2015-02-17T14:40:48.459639+00:00 app[web.1]: “Date” => “Tue, 17 Feb 2015 14:40:48 GMT” 2015-02-17T14:40:48.459640+00:00 app[web.1]: “Server” => “AmazonS3” 2015-02-17T14:40:48.459632+00:00 app[web.1]: :body => “\nAccessDeniedAccess Denied2CE306ACD51F02A1tKLXUAKxyDFTMExl7kE+AuVVsEJOFqXh983li6N7R2UlYDXv1Z3GJRvW5zy1XIXVs2zArp310vg=” 2015-02-17T14:40:48.459642+00:00 app[web.1]: “x-amz-id-2” => “”part of secret key”=” 随着“秘密密钥的一部分”明显被编辑。 我尝试过创建一个不同的用户并使用新密钥,但这没有用。 不是从这里去的地方。 应用程序/上传/ […]

适用于Image Heavy App的最佳Ruby on Rails架构

我正在构建一个允许同时上传大量照片的应用程序,并想知道解决此问题的最佳设置。 这是我到目前为止使用的: Jquery文件上传:允许用户拖放图像 CarrierWave:处理图像并使用ImageMagickresize Amazon S3:CarrierWave通过Fog将图像上传到Amazon S3 Heroku:用于托管 我想允许用户能够将大量图像拖放到页面上,然后在后台进行上传时导航到其他页面。 我还想在完成上传时显示图片。 我不希望这个过程锁定Heroku dynos,所以我可能需要将工作转移到后台工作,但我不确定如何使用我的情况。 这类应用程序的最佳设置是什么? 我应该使用什么背景工人gem? Cloudinary是个好主意吗?

Capistrano的Carrierwave文件

我正在使用带有资产和载波的rails 3.2来上传一些图像,它们存储在/ public / uploads / photo / …..但当我执行上限时:部署(使用capistrano)我的当前目录应用程序不包含我上传的文件,因为capistrano制作了新版本…. ===更新=== 毕竟我用这个: inside:deploy命名空间 task :symlink_uploads do run “ln -nfs #{shared_path}/uploads #{release_path}/public/uploads” end 之后: after ‘deploy:update_code’, ‘deploy:symlink_uploads’ ===重新更新=== @tristanm的解决方案是解决这个问题的最佳方法。

Rails 4强参数param not found with carrierwave

我遇到了载波和轨道4强参数的问题。 我有一个非常简单的模型,带有载波上传按钮。 如果有人提交上传表单而没有选择要上传的文件,我想显示错误消息。 现在,我得到一个param not found:photo的param not found:photo此消息的param not found:photo错误: # Never trust parameters from the scary internet, only allow the white list through. def photo_params params.require(:photo).permit(:image) end 发生此错误是因为Rails 4的强参数要求提供图像参数以提交表单,但由于用户未选择图像,因此不存在。 我无法找到解决此问题的方法,并将其重定向到相同的操作并显示错误消息。 有没有办法用强参数做到这一点? 当我尝试使用没有选择照片的表单时,这是开发日志: https : //gist.github.com/leemcalilly/09b6166ce1af6ca6c833 当我选择照片并成功上传时,这是开发日志: https : //gist.github.com/leemcalilly/1f1e584f56aef15e7af1 其他相关文件:* models / photo.rb – https://gist.github.com/leemcalilly/95c54a5df4e4ee6518da * controllers / photos_controller.rb – https://gist.github.com/leemcalilly/c0723e6dc5478b0f914d * uploaders / […]

exif图像旋转问题使用carrierwave和rmagick上传到s3

我的rails应用程序中有一个照片上传function。 该应用程序通过rmagick和雾直接通过carrierwave上传到s3。 我遇到的问题是通过手机上的“拍照选项”上传照片时(注意这是iphone,但我相信Android有同样的问题)。 上传后,图像在手机上显示正常,但在桌面上查看时,图像会旋转90度。 通过我的研究,它看起来是exif的一个问题。 此stackoverflow响应程序概述了2个可能的解决方案。 这个要点也看起来很有希望。 到目前为止,我发现了一些解决方案,但没有一个有效。 理想情况下,我希望将照片作为肖像保存到s3,然后按原样显示图像。 任何建议都很受欢迎。 以下是我的代码 应用程序/上传/ image_uploader.rb class ImageUploader < CarrierWave::Uploader::Base include CarrierWaveDirect::Uploader include CarrierWave::RMagick # Include the Sprockets helpers for Rails 3.1+ asset pipeline compatibility: include Sprockets::Helpers::RailsHelper include Sprockets::Helpers::IsolatedHelper include CarrierWave::MimeTypes process :fix_exif_rotation process :set_content_type version :thumb do process resize_to_fill: [200, 200] end def extension_white_list %w(jpg jpeg png) […]

Carrierwave – 仅在从存储中删除已装入的文件后销毁对象

Carrierwave在对象销毁完成后删除文件: after_commit :remove_avatar! :on => :destroy https://github.com/carrierwaveuploader/carrierwave 我有一个删除文件的工人。 如果其中一个工作人员在从S3删除文件时超时,我将失去对S3上文件的跟踪,并且我的存储桶变得一团糟(因为我的对象已安装文件已从我的数据库中消失)。 我该怎么处理? 直接调用remove_avatar! 在我的object.destroy然后skip_callback? 安全吗?

尝试使用载波上传图像时,继续“无文件选择”?

我正在尝试使用CarrierWave通过以下railscast实现上传图像: http: //railscasts.com/episodes/253-carrierwave-file-uploads?view = comment,但每当我提交图像时,我的错误消息只是说没有文件选中,当我明确选择文件时。 我已经多次检查过我的代码了,我无法理解它。 这是我的产品/ new.html.erb new product { :multipart => true } do |f| %> prohibited this post from being saved: 以下是我的产品型号: mount_uploader :image, ImageUploader 我从产品控制器中获取新的,创建和显示的操作: def new @product = Product.new(params[:id]) end def create @product = Product.new(product_params) if @product.save redirect_to @product else render :new end end def show @product = Product.find(params[:id]) end […]

Schema.rb显示由于以下NoMethodError#undefined方法`’为nil:NilClass,因此无法转储表“progress”

我正在尝试使用Carrierwave添加一个多图像上传器, 然后 将文档添加到我的应用程序中。 通常我的schema.rb看起来像这样 ActiveRecord::Schema.define(version: 20160814232416) do create_table “progresses”, force: :cascade do |t| t.string “title” t.string “date” t.text “content” t.datetime “created_at”, null: false t.datetime “updated_at”, null: false end end 当我跑: rails g migration add_images_to_progresses images:json和rake db:migrate 我的架构改变并显示出奇怪的东西……是Sqlite3还是Pg的问题? 我该怎么办 ? ActiveRecord::Schema.define(version: 20160815005123) do # Could not dump table “progresses” because of following NoMethodError #undefined method `[]’ […]