Tag: 载波

不用Carrierwave显示图像

我正在寻找一种方法,只需将照片上传到数据库并在页面上显示照片。 我正在尝试载波。 我认为它会正确上传照片,但是当它显示图像时,它所做的就是给出它的位置(url)。 这是上传者 class Image < ActiveRecord::Base attr_accessible :image, :title mount_uploader :image, ImageUploader end 这是用于上传文件的表单 {:multipart => true} do |f| %> prohibited this image from being saved: 这是为了显示图像 Image: Title: 打印出来的是: 图片:/uploads/image/image/2/946612_524939910875157_1455921715_n.jpg 标题:海报

carrierwave upload Encoding :: UndefinedConversionError:“\ xFF”,从ASCII-8BIT到UTF-8

生产中出现此错误但无法确定问题所在。 相同的请求适用于本地开发。 但生产失败了。 我正在为移动客户端使用构建API 错误跟踪 “` Encoding::UndefinedConversionError: “\xFF” from ASCII-8BIT to UTF-8 … 39 non-project frames File”/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb” line 34 in encode File”/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb” line 34 in to_json File”/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/core_ext/object/json.rb” line 34 in to_json_with_active_support_encoder File”/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb” line 56 in to_json File “/home/deploy/.bundler/example/ruby/2.0.0/gems/json-1.8.1/lib/json/common.rb” line 223 in generate File “/home/deploy/.bundler/example/ruby/2.0.0/gems/json-1.8.1/lib/json/common.rb” line 223 in generate File”/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb” line 96 in stringify File “/home/deploy/.bundler/example/ruby/2.0.0/gems/activesupport4.1.0/lib/active_support/json/encoding.rb” […]

在rails&carrierwave上传之前显示图像预览的最佳方式

我过去几天一直在使用rails,想知道在上传rails&carrierwave之前显示图像预览的最佳方式是什么。 我遇到了一些选项,比如使用plupload或jquery文件上传或使用uploadify。

使用carrierwave清理tmp目录

我使用carrierwave上传我的图片,在我的表单中我添加了一个隐藏的字段用于缓存,如文档中所述。 = form_for @user, html: {multipart: true} do |f| %p = f.label :image, “your image” = f.file_field :image, id: “img” = f.hidden_field :image_cache 但问题是在上传图像和保存记录后,tmp目录仍然具有所有临时/缓存文件。 有办法清理tmp目录吗? 我在这里发现了这篇文章,但也无法理解,并没有解释简单的例子 编辑 我试着用控制台运行这个命令 CarrierWave.clean_cached_files! 它输出一个tmp目录中所有文件的数组,如下所示: [“/home/medBo/projects/my_project/public/uploads/tmp/1380732930-5006-6671″,”/hom‌​e/medBo/projects/my_project/public/uploads/tmp/1380754280-4623-3698” …. 但是当我去看看会发生什么时,我发现所有文件仍然存在于/ tmp中(未删除) 我试着在上面的链接中阅读更多内容,我发现了一个关于CarrierWave.clean_cached_files的特殊注意事项! : 特别注意事项 此方法会破坏定义了多个版本的上传程序。 您的第一个版本将被保存,但之后将运行清理代码并删除用于生成其他版本的tmp文件。 在这种情况下,您最好创建一个定期清理tmp文件夹的rake任务。 是什么意思:“这种方法打破了有多个版本的上传者”? (因为我在我的上传器类“拇指和大版本”中使用了两个版本): class ImageUploader < CarrierWave::Uploader::Base # Include RMagick or MiniMagick support: include CarrierWave::RMagick # […]

使用carrierwave限制文件上传量

我有一个用户模型,并有一个带有carrierwave的图像模型。 我想限制用户可以上传的图像数量,因为我有第二种forms,用户去上传图像,我希望他只能上传3张图像。 有没有一个优雅的解决方案? 或者我是否必须制作一个自定义validation器来计算用户的图像数量?

使用CarrierWave设置自定义错误消息

我有一个在carrierwave上运行的图像上传应用程序,限制用户只上传所需扩展名的图像’jpg,jpeg,png’我已经在我的上传器中定义了载波波的validation定义为 def extension_white_list %w(jpg jpeg png) end 现在,任何尝试上传具有与所需扩展名不同的扩展名的图像(如上所述)都会导致validation错误 我想自定义validation错误消息 现在错误消息显示为 You are not allowed to upload “” files, allowed types: [“jpg”,”jpeg”,”png”] 谁能帮助我找到这个链接的人提到如何实现这一点 但它有些问题 1. I18n support I dont require to translate the error message using I18n 2. The ‘Key’ to be used I not sure which key to used in YAML for not matching extension […]

CarrierWave如何在给定的URL存储文件

我通过典型的ORM设置使CarrierWave正常工作并通过表单上传。 我想弄清楚如何在表单提交上下文之外使用CarrierWave。 例如,当用户注册时,我想抓住他们的gravatar并将其存储在CarrierWave中。 这是我拥有的,它不起作用: gravatar_url = “http://www.gravatar.com/avatar/#{Digest::MD5.new.update(current_user.email)}?s=512&d=identicon” uploader = ImageUploader.new uploader.store! gravatar_url 也没有错误。 我一直在寻找网络,但一直无法找到解决方案。

覆盖Rails上传器以播种数据库

我有一个CarrierWave rails上传器。 我想用假用户播种数据库,所以我试图用相同的种子文件添加图像。 图像在一个共同的存储空间中,所以如果我能在数据库中获取头像字符串,它们就可以工作。 当它保存用户时,虽然图像没有粘附。 # db/seeds.rb user1 = User.create :email => “test1@test.com”, :password => “testing”, :name => “Bob Dylan”, :avatar => “v1357014344/bdylan.jpg” user1.save # IRB User.first => # > a = User.first > a.avatar = “v1357014344/bdylan.jpg” > a.save (10.7ms) commit transaction => true > a => #

在私人商店文件夹中的rails 3.1中显示带有carrierwave的图像

我有一个rails 3.1应用程序,我正在添加carrierwave来存储图像。 但是我希望将这些图像存储在公共文件夹之外,因为只有在用户加载到应用程序中时才能访问这些图像。 所以我用初始化文件更改了carrerwave中的store_dir: CarrierWave.configure do |config| config.root = Rails.root end 我的载波上传器是这样的: class ImageUploader < CarrierWave::Uploader::Base … def store_dir "imagenes_expedientes/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end 图像存储正确,如果我使用公用文件夹一切正常。 但是,当试图将事物移动到私人文件夹时,图像不会显示,当我尝试在新窗口中打开它时,我收到以下错误: Routing Error No route matches [GET] “/imagenes_expedientes/volunteer/avatar/15/avatar.jpg” 我试图通过控制器使用send_file传递文件,但不是加载页面我只得到下载的图像。 def show send_file “#{Rails.root}/imagenes_expedientes/avatar.jpg”, :type=>”application/jpg”, :x_sendfile=>true end 最后,图像在视图中显示如下: “Avatar”, :class => “avatar round”) if @volunteer.avatar? %> 这可能很容易解决,但由于我对Rails不熟悉,我不知道该怎么做。 我应该设置路线吗? 或者无论如何使用send_file方法显示图像? 谢谢! 回答 我设法使用x-sendfile显示图像,并按照clyfe的建议放置:disposition =>’inline’ 。 […]

如何为Carrierwave分配远程文件?

我有以下定义的video模型: class Video require ‘carrierwave/orm/activerecord’ mount_uploader :attachment, VideoUploader mount_uploader :attachment_thumbnail, VideoThumbnailUploader … end 当我上传video文件时。 它还将文件发送到我们的编码服务Zencoder,Zencoder对video文件进行编码并为其创建缩略图。 通常情况下,我可以执行类似@ video.attachment.url的操作,它将返回video文件的路径。 我想用缩略图做同样的事情。 即@ video.attachment_thumbnail.url 但是,由于附件是由我们的编码服务创建的,该服务还将其上载到指定的S3存储桶。 如何将附件分配给记录的attachment_thumbnail列? 我可以简单地做一些事情: @video.update_attributes( :attachment_thumbnail => ‘https://bucket_name.s3.amazonaws.com/uploads/users/1/video/1/thumb.png’ ) 是否可以将这样的文件分配给Carrierwave?