有没有办法区分 url 和文件路径。
例如
user.avatar.url
return -> '/home/pic.png' #if no image url is present
return -> 'https://...' #if image url is present.
有没有办法可以检查返回的 url 是链接还是文件路径?
有没有办法区分 url 和文件路径。
例如
user.avatar.url
return -> '/home/pic.png' #if no image url is present
return -> 'https://...' #if image url is present.
有没有办法可以检查返回的 url 是链接还是文件路径?
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
查看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
例如,在回形针中:
user.avatar.exists?