我的服务器上的文件夹中有一堆jpeg文件,我试图通过rake任务将它们附加到相应的Property
实例。
property.rb
包含以下代码:
has_attached_file :temp_photo,
:styles => PropertyImage::STYLES,
:url => "/assets/:class/:attachment/:id_partition/:style_:basename.:extension",
:path => "#{Rails.root}/public/assets/:class/:attachment/:id_partition/:style_:basename.:extension"
我在其他型号上使用paperclip,并且没有任何问题,但是当我尝试以下操作时出现问题:
p = Property.find(id)
file = File.open(temp_file_path)
p.temp_photo = file
p.save
# => false
file.close
p.errors
# => "/tmp/stream20110524-1126-1cunv0y-0.jpg is not recognized by the 'identify' command."
该文件肯定存在,我尝试更改权限。重新启动服务器没有帮助。问题似乎是使用命令行,因为正常的表单/ HTTP方法工作正常。这只是一个临时设置,所以我正在寻找一种将一批文件导入我的rails app paperclip模型的工作方式。
有什么建议吗?
答案 0 :(得分:4)
path = 'target_file_path'
attach_name = 'temp_photo'
p = Property.find(id)
attach = Paperclip::Attachment.new(attach_name, p, p.class.attachment_definitions[attach_name.to_suym])
file = File.open(path)
attach.assign file
attach.save
file.close