我正在使用omniauth-twitter gem。在我的用戶模型apply_omniauth方法,我保存這樣的Twitter圖片路徑,剝離_normal後綴:
if omniauth['provider'] == 'twitter'
self.image = omniauth['info']['image'].sub("_normal", "")
end
然後,我有所謂的肖像一個helper方法接受一個尺寸參數。至於特倫斯·伊登建議,您只需更換_size後綴的文件名來訪問the different image sizes that Twitter provides:
def portrait(size)
# Twitter
# mini (24x24)
# normal (48x48)
# bigger (73x73)
# original (variable width x variable height)
if self.image.include? "twimg"
# determine filetype
case
when self.image.downcase.include?(".jpeg")
filetype = ".jpeg"
when self.image.downcase.include?(".jpg")
filetype = ".jpg"
when self.image.downcase.include?(".gif")
filetype = ".gif"
when self.image.downcase.include?(".png")
filetype = ".png"
else
raise "Unable to read filetype of Twitter image for User ##{self.id}"
end
# return requested size
if size == "original"
return self.image
else
return self.image.gsub(filetype, "_#{size}#{filetype}")
end
end
end
此答案給出了更詳細和有用的答案,以及用子方法去除「_normal」的解決方案。謝謝! – 2013-05-22 20:57:25