ruby on rails 3 -如何使用omniauth_callback控制器和自定义设计注册控制器



我为设计设置了一个自定义注册控制器,它是:

  devise_for :users, controllers: {registrations: "registrations"}

,在控制器中:

class RegistrationsController < Devise::RegistrationsController
  protected
    def after_update_path_for(resource)
      user_path(resource)
    end
end

效果很好。

然而,我也有全方位的身份验证,这再次工作得很好…本身:

  devise_for :users, controllers: {omniauth_callbacks: "omniauth_callbacks"}
class OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def all
    user = User.from_omniauth(request.env["omniauth.auth"])
        if user.persisted?
        flash.notice = "Signed in!"
        sign_in_and_redirect user
        else
        session["devise.user_attributes"] = user.attributes
        redirect_to sign_up_path
        end
  end
    alias_method :linkedin, :all
    alias_method :twitter, :all
end

然而,正如你可能已经看到了我的问题-我不确定如何让他们一起工作,因为他们都以' device_for:users'开头,所以无论我把它们放在路由文件中,一个都不会工作。

我怎么能让他们都在同一时间工作,使注册控制器只覆盖"编辑"one_answers"更新"的动作,而omniauth_callbacks控制器处理身份验证?

谢谢

在路由。rb,您可以像这样为devise_for设置逗号分隔的路径-

devise_for :users, controllers: {registrations: "registrations", omniauth_callbacks: "omniauth_callbacks"}

相关内容

  • 没有找到相关文章