Ruby on rails 使用回形针(Rails)将url中的图像附加到表单中

Ruby on rails 使用回形针(Rails)将url中的图像附加到表单中,ruby-on-rails,paperclip,Ruby On Rails,Paperclip,在为桌面图像附件指定的表单中,我希望从URL在表单中附加一个文件(不添加新字段,希望使用上面的附件表单进行附加)。这在Rails中首先是可能的吗?这就是我目前所处的位置 目前,我正在使用回形针作为图像附件,并能够通过以下方式获取文件: image_url = URI.parse('http://www.flicker/image.png') imageFile = open(URI.parse(image_url)) 如果要调用imageFile,它将输出以下内容:# 我已经在我的模型中设

在为桌面图像附件指定的表单中,我希望从URL在表单中附加一个文件(不添加新字段,希望使用上面的附件表单进行附加)。这在Rails中首先是可能的吗?这就是我目前所处的位置


目前,我正在使用回形针作为图像附件,并能够通过以下方式获取文件:

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

imageFile = open(URI.parse(image_url))
如果要调用imageFile,它将输出以下内容:#

我已经在我的模型中设置了所有内容:
已附加文件:image,:styles=>{:medium=>“300x300”,:thumb=>“100x100”}
验证\u附件\u内容\u类型:图像,:内容\u类型=>/\Aimage/

控制器:

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

但不幸的是,简单地为图像分配新操作:成为一个imageFile不起作用。有什么帮助吗?

我可能误解了您的需要,但最简单的方法是从表单中删除文件字段,而使用
attr\u 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
class-Deal{:medium=>“300x300”,:thumb=>“100x100”}
验证\u附件\u内容\u类型:图像,:内容\u类型=>/\Aimage/
def图像_远程_url=(url)
self.image=URI.parse(url)
@image\u remote\u url=url
结束
结束

通过这种方式,您可以选择url或文件上传。

谢谢您的回答。是的,我知道创建两个字段可以解决这个问题,一个url和一个choose file attachment,但我只是想知道我是否可以通过以下基本方式填写“choose file”附件字段:1)从params接收图像url[:search]2)从params 3)下载图像文件,然后将文件附加到表单中,而不必从我的桌面选择它。这是一件很奇怪的事情,但我或多或少只是为了好玩而试图解决它。