J'essaie de comprendre pourquoi je ne peux pas identifier ma méthode. Peut-être que je ne vois pas les choses clairement et fait une petite erreur que quelqu'un peut attraper? Voici mon code et quand je clique sur le bouton j'obtiens cette erreur.Méthode non détectée dans le modèle "méthode non définie` process_uri '"
Modèle utilisateur: lorsque if auth.info.image.present?
est transmis le process_uri
est appelé, mais ma méthode n'est pas identifié.
def self.from_omniauth(auth)
anonymous_username = "NewUser#{User.last.id + 1}"
generated_password = Devise.friendly_token[0,20]
user = User.where(:email => auth.info.email, :username => anonymous_username).first
if user
return user
else
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.confirmed_at = Time.now
user.fullname = auth.info.name
user.provider = auth.provider
user.uid = auth.uid
user.username = anonymous_username
user.email = auth.info.email
user.password = generated_password
end
if auth.info.image.present?
avatar_url = process_uri(auth.info.image)
user.update_attribute(:avatar, URI.parse(avatar_url))
end
end
end
private
def process_uri(uri)
require 'open-uri'
require 'open_uri_redirections'
open(uri, :allow_redirections => :safe) do |r|
r.base_uri.to_s
end
end
Comme vous pouvez le voir, j'ai une méthode privée sous def process_uri(uri)
.. même quand je sors privé c'est toujours pas remarqué ... merci !!
Okay! alors devrais-je ajouter 'def self.process_uri (uri)' comme méthode à la place ?? –
Oui, ça devrait marcher. –