使用Paperclip(Rails)从URL中附加表单中的图像

时间:2015-11-21 16:25:31

标签: ruby-on-rails paperclip

在为桌面图片附件指定的表单中,enter image description here我想在URL中附加表单中的文件(不添加新字段,想要使用上面的附件表单附加)。这首先在Rails中是否可行?这是我到目前为止的地方。


目前,我正在使用Paperclip进行图像附件,并且能够通过以下方式获取文件:

image_url = URI.parse('http://www.flicker/image.png')

imageFile = open(URI.parse(image_url))

如果你要调用imageFile,它会输出:#<文件:0x007fad310ca238>

我在模型中设置了所有内容:
has_attached_file:image,:styles => {:medium => “300x300#”,:thumb => “100x100#”}
validates_attachment_content_type:image,:content_type => / \ Aimage /

控制器:

 @deal = current_user.deals.build(
     #fills out other fields as well but deleted them
     #attatch image to field
    image: imageFile
    )

但遗憾的是,只需在图像的新操作中指定:成为imageFile不起作用。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

我可能误解了您的需求,但最简单的方法是从表单中删除文件字段,而使用attr_reader表示新字段,即图像的URL。然后在您的模型中,对该字段中的值进行URI.parse调用,然后返回该值。

所以你的交易模型看起来像

class Deal < ActiveRecord::Base
  attr_reader :image_remote_url
  has_attached_file :image, :styles => { :medium => "300x300#", :thumb => "100x100#" } 
  validates_attachment_content_type :image, :content_type => /\Aimage/

  def image_remote_url=(url)
    self.image = URI.parse(url)
    @image_remote_url = url
  end
end

这样您就可以允许选项,网址或文件上传。