Ruby on rails twitter授权问题(设计gem、rails)

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,

你好。也许我的问题是胡说八道,但我在twitter上遇到了一个错误:

Desive::RegistrationController#新建中的ArgumentError

参数数目错误(给定2,应为0..1)

我在我的应用程序中使用了乘法singup,其他功能都很好

我的回调控制器:

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以来已被删除。而且,在打开该块之前,您似乎还需要一个
点击