Ruby on rails 使用designe&;omniauth

Ruby on rails 使用designe&;omniauth,ruby-on-rails,devise,ruby-on-rails-3.2,omniauth,Ruby On Rails,Devise,Ruby On Rails 3.2,Omniauth,MyRails应用程序使用Desive/omniauth,使用linkedin凭据向网站注册新用户 我有它的工作正常,但我想添加第二步的注册过程,以便新用户可以选择一个用户名和密码的网站 我已尝试将用户重定向到Desive的新用户注册url以完成注册过程,但它将重定向视为我正在尝试创建新用户,并返回错误消息,显示: 2个错误禁止保存此用户: 密码不能为空 用户名不能为空 这是我的omniauth\u callbacks\u controller.rb: class OmniauthCallbac

MyRails应用程序使用Desive/omniauth,使用linkedin凭据向网站注册新用户

我有它的工作正常,但我想添加第二步的注册过程,以便新用户可以选择一个用户名和密码的网站

我已尝试将用户重定向到Desive的新用户注册url以完成注册过程,但它将重定向视为我正在尝试创建新用户,并返回错误消息,显示:

2个错误禁止保存此用户:

密码不能为空

用户名不能为空

这是我的omniauth\u callbacks\u controller.rb:

class OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def all
    user = User.from_omniauth(request.env["omniauth.auth"])
    if user.encrypted_password.blank? || user.user_name.blank?
      session["devise.user_attributes"] = user.attributes
      redirect_to new_user_registration_url, :validate => false
    else
      if user.persisted?
        flash[:success] = "Signed in!"
        if user.role == "admin"
          sign_in user
          redirect_to admin_path
        else
          sign_in_and_redirect user
        end
      else
        session["devise.user_attributes"] = user.attributes
        redirect_to new_user_registration_url
      end
    end
  end
  alias_method :linkedin, :all
class OmniAuthCallbackControllerfalse
其他的
如果user.com持久化?
flash[:success]=“已登录!”
如果user.role==“admin”
登录用户
将\u重定向到管理\u路径
其他的
登录并重定向用户
结束
其他的
会话[“设计用户属性”]=用户属性
将\重定向到新\用户\注册\ url
结束
结束
结束
别名\方法:linkedin,:全部

有人知道我如何从这里开始,使这成为一个两步注册过程吗?

通常的方法是使页面上的omniauth回调页面有一个带有用户名和密码的表单。该表单发布到一个创建实际用户的操作。

感谢您的回复,但这并不是我真正想要做的。用户模型中已经有一个用户名,我已经让它在不需要密码的情况下工作了。我正在尝试创建一个注册过程,用户可以在该过程中选择自己的密码。您是否创建了从Desive::RegistrationController继承的RegistrationController。在我看来,这就是这里缺少的。如果有,请编辑您的问题以显示控制器。我没有。网上有什么资源可以让我看到一个例子吗?当然可以。让我向你介绍一下铁路司机的神奇世界:。你也可以享受。但第二部分与你的问题有关。