Ruby on rails twitter授权问题(设计gem、rails)
你好。也许我的问题是胡说八道,但我在twitter上遇到了一个错误: Desive::RegistrationController#新建中的ArgumentError 参数数目错误(给定2,应为0..1) 我在我的应用程序中使用了乘法singup,其他功能都很好 我的回调控制器:Ruby on rails twitter授权问题(设计gem、rails),ruby-on-rails,authentication,twitter,devise,Ruby On Rails,Authentication,Twitter,Devise,你好。也许我的问题是胡说八道,但我在twitter上遇到了一个错误: Desive::RegistrationController#新建中的ArgumentError 参数数目错误(给定2,应为0..1) 我在我的应用程序中使用了乘法singup,其他功能都很好 我的回调控制器: class User < ApplicationRecord devise :database_authenticatable, :registerable, :recoverable,
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:omniauthable, omniauth_providers: %i[google_oauth2 twitter github]
def self.from_omniauth(auth, _signed_in_resource = nil)
user = User.where(provider: auth.provider, uid: auth.uid).first
if user.present?
user
else
user_with_email = User.find_by_email(auth.info.email)
if user_with_email.present?
user = user_with_email
else
user = User.new
if auth.provider == 'github'
user.provider = auth['provider']
user.uid = auth['uid']
user.oauth_user_name = auth['info']['name']
user.email = auth['info']['email']
user.save
elsif auth.provider == 'twitter'
user.provider = auth.provider
user.uid = auth.uid
user.oauth_token = auth.credentials.token
user.oauth_expires_at = auth.extra.raw_info.name
elsif auth.provider == 'google_oauth2'
user.provider = auth.provider
user.uid = auth.uid
user.oauth_token = auth.credentials.token
user.first_name = auth.info.first_name
user.last_name = auth.info.last_name
user.email = auth.info.email
user.oauth_expires_at = Time.at(auth.credentials.expires_at)
user.save
end
end
end
user
end
def self.new_with_session(params, session)
if session['devise.user_attributes']
new(session['devise.user_attributes'], without_protection: true) do |user|
user.attributes = params
user.valid?
end
else
super
end
end
def password_required?
super && provider.blank?
end
end
class用户
感谢您的关注和帮助。完整的错误消息是什么,以及您的RegistrationController?@SebastianPalma RegistrationController来自Desive gem,错误您使用的Rails版本是什么?@SebastianPalma Rails 5.1.5尝试删除
无保护:true
选项,该选项自Rails 4以来已被删除。而且,在打开该块之前,您似乎还需要一个点击?