设计skip_confirmation! 不工作

我的应用程序已设置好,如果用户使用Oauth或Openid登录,则无需确认其电子邮件地址。 但是,Devise仍在发送电子邮件确认。 当我调用User.skip_confirmation时! 我得到一个未定义的方法错误。 我的模特:

class User  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 

我的控制器:

 class Users::OmniauthCallbacksController  { :success => "Welcome #{@fname}!" } else session["devise.facebook_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url end end end 

谢谢你的帮助。

在创建User对象并将其持久保存到数据库之前,您需要跳过确认。 因此,方法的用户创建部分看起来像

 user = User.new(:username => data.name,:email => data.email,:password => Devise.friendly_token [0,20])
 user.skip_confirmation!
 user.save

如果您要更新用户记录,请确保使用skip_reconfirmation! (介意重新