Paperclip 在 has_many 关联中添加来自 URL 的图像

Paperclip add image from URL in has_many association

我有这个模型: 产品 -> Products_Images.

我可以从一个表单中添加多张图片,上传图片是我的电脑。我想添加来自 URL 的图像而不是本地图像。

Paperclip 添加了这个功能: https://github.com/thoughtbot/paperclip/wiki/Attachment-downloaded-from-a-URL 但我不知道如何在 has_many 协会中应用它。

我尝试在 ProductImages 模型中添加一个方法,并在创建产品后为每个 URL 调用它。不知道是不是一定要在Product模型中直接使用这个方法

Paperclip的wiki方法我应该放在哪里试试?

这是一个很好的要点(不是我写的)。它应该让你到达那里:https://gist.github.com/jgv/1502777

require 'open-uri'

class Photo < ActiveRecord::Base

  has_attached_file :image # etc...

  before_validation :download_remote_image, :if => :image_url_provided?

  validates_presence_of :image_remote_url, :if => :image_url_provided?, :message => 'is invalid or inaccessible'

  private

  def image_url_provided?
    !self.image_url.blank?
  end

  def download_remote_image
    io = open(URI.parse(image_url))
    self.original_filename = io.base_uri.path.split('/').last
    self.image = io
    self.image_remote_url = image_url
  rescue # catch url errors with validations instead of exceptions (Errno::ENOENT, OpenURI::HTTPError, etc...)
  end

end

感谢作者。

以后,通常最好post尝试解决问题的代码。