paperclip使用instance_write重命名stringio.txt

Bin*_*yan 2 ruby-on-rails paperclip omniauth ruby-on-rails-3

我正在使用omniauth-facebook并尝试使用回形针显示个人资料图片.这是我用来将图片添加到用户模型的代码

def picture_from_url(url)
    self.profile_pic =open(url)
end
Run Code Online (Sandbox Code Playgroud)

但是,它始终保存为stringio.txt.所以搜索这个行为我发现回形针允许回调,所以我在User模型中编写了以下方法来重命名文件名

def rename_profile_pic
    self.profile_pic.instance_write :filename, "#{self.username}.jpg"
end 
Run Code Online (Sandbox Code Playgroud)

并将其传递给回调

before_post_process :rename_profile_pic
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助.

我有什么想法可以解决这个问题?

谢谢

smc*_*drc 10

如果您还没有找到解决方案:

data = StringIO.new(file_data)
data.class.class_eval { attr_accessor :original_filename, :content_type }

data.content_type = content_type
data.original_filename = file_name

object.attachment = data
Run Code Online (Sandbox Code Playgroud)