Le lien de l'icône Twitter obtenu en vous connectant à Twitter sera immédiatement coupé, donc enregistrez-le dans s3.
https://qiita.com/puremoru0315/items/f1d459b663fd3b715dee
L'article ci-dessus était facile à comprendre
Le processus suivant est écrit en omniauth
user.rb
class User < ApplicationRecord
mount_uploader :image_url, ImageUploader
#S'il y a un utilisateur lié à l'argument, il est renvoyé, et s'il existe, un nouveau est créé.
def self.find_or_create_from_auth_hash(auth_hash)
#Remplacez chaque donnée acquise par OmniAuth
provider = auth_hash[:provider]
uid = auth_hash[:uid]
nickname = auth_hash[:info][:nickname]
image = auth_hash[:info][:image]
User.find_or_initialize_by(provider: provider, uid: uid) do |user|
if user.new_record?
user.nickname = nickname
user.remote_image_url = image_url
user.save
end
end
end
end
find_or_initialize_by obtient l'utilisateur s'il le recherche et en crée un nouveau s'il ne le recherche pas. Contrairement à find_or_create_by, find_or_create_by enregistre même. Si vous souhaitez insérer uniquement un nouveau traitement d'enregistrement, utilisez find_or_initialize_by, qui vous permet de sauvegarder après le branchement conditionnel s'il faut en créer un nouveau avec new_record?.
https://github.com/carrierwaveuploader/carrierwave#uploading-files-from-a-remote-location
Le traitement suivant est effectué lors de l'enregistrement d'image
Ce processus peut être facilement réalisé avec la méthode remote_xxxx_url.
Recommended Posts