2

私はomniauth-facebookを使用しており、ペーパークリップを使用してプロフィール写真を表示しようとしています。これが私のユーザーモデルに画像を取得するために使用するコードです

def picture_from_url(url)
    self.profile_pic =open(url)
end

ただし、常にstringio.txtとして保存されます。この動作を検索すると、ペーパークリップでコールバックが可能であることがわかったので、ユーザーモデルで次のメソッドを記述してファイル名の名前を変更しました

def rename_profile_pic
    self.profile_pic.instance_write :filename, "#{self.username}.jpg"
end 

そしてそれをコールバックに渡しました

before_post_process :rename_profile_pic

しかし、これは役に立たないようです。

これを修正する方法はありますか?

ありがとう

4

3 に答える 3

1

これを使用して、stringio.txt をファイルに変換します。

file = StringIO.new(obj)
file.original_filename = "#{self.username}.jpg"

次に、ファイルをに割り当てますprofile_pic

于 2012-12-22T13:36:01.987 に答える