我有两个型号。一个是图像,它有一个名为“文件”的附件并保存到“/ photos”。这些将是简单的图像,例如,在专辑中。我的用户也有一个名为“avatar”的附件,可以保存到“avatars / etc etc”。如何将一个附件(@ image.file)复制到我的用户以将其保存为他的头像?我希望用户能够在他们的专辑图像中选择他/她所拥有的图像并将其用作化身。我想复制它,所以如果用户从他们的相册中删除该图像,它将不会删除他们的头像。
has_attached_file :avatar, :styles => {
:huge => '220x220!',
:full => '72x72!',
:medium => '48x48!',
:small => '24x24!'
},
:path => ':rails_root/public/avatars/:userid_prefix/:userid/:style-:random.:extension',
:url => '/avatars/:userid_prefix/:userid/:style-:random.:extension',
:default_url => :default_avatar_url
has_attached_file :file,
:styles => {
:large => '640x480',
:avatar => '72x72!',
:cover => '160x160!'},
:path => ':rails_root/public/photos/:userid_prefix/:userid/:id_:style-:random.:extension',
:url => '/photos/:userid_prefix/:userid/:id_:style-:random.:extension'
答案 0 :(得分:0)
这可能不是世界上最有效的方法,但您可以让Paperclip从您网站上的网址导入图片。
假设您向用户展示了他们的照片,以及他们点击的User#update
与params => { :avatar_url => 'http://www.yourownwebsite.com/url/of/image.jpg' }
调用的对象。
然后在控制器中处理此参数,执行以下操作:
if params.has_key? :avatar_url
begin
@user.avatar = open params[:avatar_url]
rescue
logger.warn "Unable to open #{params[:avatar_url]}"
end
end
if @user.save
# Regular response handling goes here...