2014-02-13 2 views
1

Я на среде разработки на локальном хосте: 3000Gravatar - установка пользовательских по умолчанию аватара - аватар не показан

Я последовал Railscasts эпизод на Gravatar. Я пытаюсь установить свой образ аватара, который находится в активах/изображениях.

код я использую это:

def avatar_url(user) 
    gravatar_id = Digest::MD5.hexdigest(user.email.downcase) 
    default_url = "#{root_url}assets/AwesomeAvatar.png" 
    "http://gravatar.com/avatar/#{gravatar_id}.png?s=100&r=g&d=#{CGI.escape(default_url)}" 
    end 

Олицетворение does not load. Когда я пытаюсь сохранить изображение, появляется сообщение об ошибке: «Failed - No file».

Я изменил к умолчанию ресурса:

default_url = "http://localhost:3000/assets/AwesomeAvatar.png" 

Когда я иду в этот адрес я вижу изображение аватара, но я все еще получаю ту же ошибку и аватар не наедаться. Я также попытался установить d как: d="http://localhost:3000/assets/AwesomeAvatar.png" и d=#{CGI.escape("http://localhost:3000/assets/AwesomeAvatar.png")}, но не повезло с загрузкой аватара.

Любая подсказка, что не так?

Благодаря

ответ

4

сайт Gravatar говорит изображение по умолчанию вы определяете» должны быть публично доступны (например, не может быть в интрасети, на локальном компьютере разработчика, за HTTP Auth или другой брандмауэр и т. д.). Изображения по умолчанию проходят через проверку безопасности, чтобы избежать вредоносного содержимого. »

URL-адрес, используемый для вашего изображения по умолчанию, размещен в вашей среде разработки на локальном хосте, так что это не сработает. Чтобы он работал, вам необходимо разместить изображение по умолчанию является общедоступным и использует этот общедоступный URL-адрес для значения по умолчанию.

+0

Это решение, спасибо! - Я загрузил аватар в общий каталог моего сайта, и все отлично работало. –

0

Похоже, ваш URL неправильно, попробуйте:

gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}" 

Для справки это мой Пользователи Helper:

module UsersHelper 

    # Returns the Gravatar (http://gravatar.com/) for the given user. 
    def gravatar_for(user, options = { size: 50 }) 
    gravatar_id = Digest::MD5::hexdigest(user.email.downcase) 
    size = options[:size] 
    gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}" 
    image_tag(gravatar_url, alt: user.name, class: "gravatar") 
    end 

end 

Вы можете добавить опции [: по умолчанию] = image_tag ("Yourimage.png"), чтобы изменить изображение по умолчанию.

+0

все другие гравитаторы показаны в порядке. по умолчанию это проблема, с которой я сталкиваюсь (я пытаюсь загрузить пользовательский, а не гравитационный по умолчанию). –

+0

Я знаю, что нет опции default_url. Возможно, вы ищете опции [: default] = "# {root_url} assets/AwesomeAvatar.png". Посмотрите также этот ответ: http://stackoverflow.com/questions/5885714/ how-do-you-have-a-default-gravatar-that-is-external-and-that-actual-resizes-pr? rq = 1 – ChrisBarthol

0

Я должен прокомментировать ваш вопрос, но моя репутация не позволяет мне. Вы пытаетесь с «gravatar_url =» https://secure.gravatar.com/avatar/# {gravatar_id} «???

Смежные вопросы