Uygulamam, bir kullanıcı Oauth veya Openid ile oturum açtığında, e-posta adresini onaylamaları gerekmeyecek şekilde ayarlanmıştır. Ancak, Devise hala e-posta onayları gönderiyor. User.skip_confirmation'u aradığımda! Tanımlanmamış bir yöntem hatası alıyorum. Benim modelim:Devise skip_confirmation! çalışmaz
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable, :recoverable, :rememberable,
:trackable, :validatable, :confirmable, :lockable, :token_authenticatable, :omniauthable
attr_accessible :username, :email, :password, :password_confirmation, :remember_me
validates_presence_of :username
validates_uniqueness_of :username, :case_sensitive => false
def self.find_for_facebook_oauth(access_token, signed_in_resource=nil)
data = access_token.extra.raw_info
if user = User.where(:email => data.email).first
user
else
#User.skip_confirmation!
User.create!(:username => data.name, :email => data.email, :password => Devise.friendly_token[0,20])
end
end
def skip_confirmation!
self.confirmed_at = Time.now
end
end
My Denetleyici: Herhangi bir yardım için
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def facebook
@user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)
@user.skip_confirmation!
if @user.persisted?
sign_in @user
@fname = @user.username
redirect_to root_path, :flash => { :success => "Welcome #{@fname}!" }
else
session["devise.facebook_data"] = request.env["omniauth.auth"]
redirect_to new_user_registration_url
end
end
end
teşekkürler.
( yeniden mind)
skip_reconfirmation!
kullanmak olun: confirmable sen "skip_confirmation!" mesajına gerçekten gerek yok (http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Confirmable#skip_confirmation%21-instance_method) Yığın izini gönderir misiniz? Eksik olan "skip_confirmation!" Yönteminden şüphe duyuyorum. – Tigraine