1

有没有办法区分 url 和文件路径。

例如

 user.avatar.url  
 return -> '/home/pic.png' #if no image url is present  
 return -> 'https://...' #if image url is present.

有没有办法可以检查返回的 url 是链接还是文件路径?

4

3 回答 3

2
uri = URI.parse(user.avatar.url)
if uri.scheme == 'http' or uri.scheme == 'https'
   # It is a web URL
elsif File.file?(user.avatar.url)
   # It is a file
else
   # Unknown
end
于 2013-09-16T13:56:37.580 回答
0

查看http://railscasts.com/episodes/244-gravatar

您可以使用方法检查检查用户是否有 avatar_url present?。如果是,则返回 URL,否则恢复为默认图像。

def avatar_url(user)
  if user.avatar_url.present?
    user.avatar_url
  else
    default_url = "#{root_url}images/guest.png"
    gravatar_id = Digest::MD5.hexdigest(user.email.downcase)
    "http://gravatar.com/avatar/#{gravatar_id}.png?s=48&d=#{CGI.escape(default_url)}"
  end
end
于 2013-09-16T13:49:55.580 回答
0

例如,在回形针中:

user.avatar.exists?
于 2013-09-16T13:52:42.740 回答