Der Link des Twitter-Symbols, der durch die Anmeldung bei Twitter erhalten wird, wird sofort unterbrochen. Speichern Sie ihn daher in s3.
https://qiita.com/puremoru0315/items/f1d459b663fd3b715dee
Der obige Artikel war leicht zu verstehen
Der folgende Prozess ist in Omniauth geschrieben
user.rb
class User < ApplicationRecord
mount_uploader :image_url, ImageUploader
#Wenn sich ein Benutzer auf das Argument bezieht, wird es zurückgegeben, und wenn es vorhanden ist, wird ein neues erstellt.
def self.find_or_create_from_auth_hash(auth_hash)
#Ersetzen Sie alle von OmniAuth erfassten Daten
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 ruft den Benutzer ab, wenn er danach sucht, und erstellt einen neuen, wenn dies nicht der Fall ist. Im Gegensatz zu find_or_create_by speichert find_or_create_by sogar. Wenn Sie nur eine neue Registrierungsverarbeitung einfügen möchten, verwenden Sie find_or_initialize_by, mit der Sie nach der bedingten Verzweigung speichern können, ob Sie eine neue mit new_record erstellen möchten.
https://github.com/carrierwaveuploader/carrierwave#uploading-files-from-a-remote-location
Die folgende Verarbeitung erfolgt beim Speichern von Bildern
Dieser Vorgang kann einfach mit der Methode remote_xxxx_url durchgeführt werden.
Recommended Posts