如何使用Rails 4和CarrierWave从文件选择窗口上传多个图像?我有一个post_controller
和post_attachments
模型.我怎样才能做到这一点?
有人能提供一个例子吗?有一个简单的方法吗?
我有一个安装Carrierwave上传器的简单模型.一切都在开发中工作正常,但我得到一个未定义的方法"image_will_change!" heroku上的错误.
class Receipt < ActiveRecord::Base
mount_uploader :image, ImageUploader
end
class ImageUploader < CarrierWave::Uploader::Base
storage :fog
def store_dir
"receipts/saved"
end
end
Run Code Online (Sandbox Code Playgroud)
根据Carrierwave Wiki,我也正确设置了cache_dir.
receipt.image = File.open "public/images/test.jpg" #works fine in development, fails in heroku
Run Code Online (Sandbox Code Playgroud) 我正在使用carrierwave gem上传文件.
我已经构建了一个系统,供用户将图像标记为不合适,并且管理员可以删除图像.据我所知,在图像上调用destroy只会从表中删除路径名.
有没有办法让carrierwave实际删除文件本身?或者当我销毁图像路径时,rails会自动删除文件吗?
我正在努力将Rails 2.3.11,Ruby 1.9.2应用程序升级到Rails 3.0.10,并且attachment_fu不再有效.
我正在寻找更改为paperclip,carrierwave或dragonfly的文件上传,或者可能是raails 3兼容,维护版本的attachment_fu.
哪些选项在性能方面最好用,维护得多好,从attachment_fu升级是多么容易,也许它会与Rails 3.1兼容?每个人的主要优点和缺点是什么?
任何见解将不胜感激.
attachment-fu paperclip ruby-on-rails-3 carrierwave dragonfly-gem
我试图在Rails erb模板中显示Carrierwave附件的文件名.以下不起作用:
<%= @page.form.filename %>
Run Code Online (Sandbox Code Playgroud)
这似乎与文档一致.需要一些额外的步骤吗?
我的页面模型如下所示:
class Page < ActiveRecord::Base
mount_uploader :form, FormUploader
end
Run Code Online (Sandbox Code Playgroud)
表单上传器如下所示:
class FormUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
def extension_white_list
%w(pdf)
end
end
Run Code Online (Sandbox Code Playgroud) 我只是想知道如何在Rails控制台中使用Carrierwave上传远程文件URL.
我试了以下没有任何运气.我认为它不处理上传器?
user = User.first
user.remote_avatar_url = "http://www.image.com/file.jpg"
user.save
Run Code Online (Sandbox Code Playgroud)
非常感谢
在暂存时,我在通过carrierwave和minimagick上传和调整图像大小时面临以下错误.在当地一切正常.
carrierwave(0.9.0)mini_magick(3.7.0)
irb(main):003:0> PicturePost.create(remote_content_url: 'http://www.imagpress.com/img/slider/slider_1.jpg')
NoMethodError: undefined method `size' for nil:NilClass
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick.rb:24:in `choose_processor'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick.rb:64:in `mogrify?'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:360:in `run_command'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:171:in `valid?'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:140:in `create'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:48:in `read'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:111:in `block in open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/mini_magick-3.7.0/lib/mini_magick/image.rb:110:in `open'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/processing/mini_magick.rb:260:in `manipulate!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/processing/mini_magick.rb:176:in `resize_to_fill'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:85:in `block in process!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:81:in `each'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/processing.rb:81:in `process!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/callbacks.rb:18:in `block in with_callbacks'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/callbacks.rb:18:in `each'
9 levels...
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/uploader/download.rb:65:in `download!'
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/mount.rb:353:in `remote_url='
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/mount.rb:203:in `remote_content_url='
from /home/deploy/apps/staging/blog/shared/bundle/ruby/1.9.1/gems/carrierwave-0.9.0/lib/carrierwave/orm/activerecord.rb:44:in `remote_content_url='
from …
Run Code Online (Sandbox Code Playgroud) 我收到一个看起来像这样的错误:
undefined method `post_image_will_change!' for #<Post:0xf4e9184>
app/controllers/posts_controller.rb:43:in `new'
app/controllers/posts_controller.rb:43:in `create'
Run Code Online (Sandbox Code Playgroud)
我把它包含在我的"帖子"模型中:
attr_accessible :title, :name, :content, :post_image
mount_uploader :post_image, PostImageUploader
Run Code Online (Sandbox Code Playgroud)
并在_form.html.erb我添加了:
:html => { :multipart => true }
Run Code Online (Sandbox Code Playgroud)
我看了CarrierWave Error,但这对我没有帮助.
什么产生错误的线索?我已经迁移了数据库等等(紧跟载波的railscasts指南......)
假设我的模型有一个图像,:thumb
客户想要:tiny
和:nano
缩略图.
如何使用rake任务重新处理所有现有图像?
我发现了一个rake任务,我认为会这样做https://gist.github.com/777788但它给了我错误.
我有一个帖子模型和一个播客模型.两个模型都有一个标题为:image的属性.我正在使用一个Carrierwave上传器(名为ImageUploader)来处理这两个模型.在我投入生产之前,我有两个问题.
愚蠢的问题:
当它们的文件附件具有相同的属性名称时,可以对两个不同的模型使用相同的上传器吗? 抱歉,如果这看起来很明显
主要问题:
我想创建每个博客文章图像的三个版本(拇指,大,棕褐色),每个播客图像(拇指)只有1个版本.
我现在需要使用两个上传器,还是可以使用我已经使用的那个命名空间?
它似乎很明显.我可能已经写了第二个上传者,它带我去问这些问题