У меня есть представление пользователя, в котором я разрешаю пользователю загружать свое собственное изображение или разрешаю ему импортировать изображение из своего профиля LinkedIn. Мой LinkedIn OAuth работает нормально и возвращает URL-адрес изображения, расположенного на серверах linkedin. У меня есть метод picture_from_url в моей модели пользователя, который вызывается UsersController в его методе обновления. Я устанавливаю URL-адрес переменной сеанса, а затем отправляю его методу модели в контроллере. Это, однако, не обновляет изображение для пользователя. У меня есть настройка драгоценного камня papertrail, так что он может использовать изображение со своего компьютера и легко изменить изображение своего профиля.
Метод моей модели
def picture_from_url(url)
encoded_url = URI.encode(url.to_s)
avatar= URI.parse(encoded_url)
end
Мой вызов контроллера
def update
@user = User.find(params[:id])
@user.picture_from_url(session[:linkedin_picture])
respond_to do |format|
if can?(current_user, @user)
if @user.update_attributes(user_params)
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { render_success @user }
else
format.html { render action: 'edit' }
format.json { render_error @user }
end
else
format.html { render action: 'edit', status: :unprocessable_entity }
format.json { render_error @user }
end
end
end