在为桌面图片附件指定的表单中,我想在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不起作用。有什么帮助吗?
答案 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
这样您就可以允许选项,网址或文件上传。