我有一个用于设计设置的自定义注册控制器,它是:
devise_for :users, controllers: {registrations: "registrations"}
在控制器中:
class RegistrationsController < Devise::RegistrationsController
protected
def after_update_path_for(resource)
user_path(resource)
end
end
它工作得很好。
但是我也有omniauth身份验证,它本身也很有效......
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
但是,您可能已经看到我的问题 - 我不确定如何让它们一起工作,因为它们都以 'devise_for :users' 开头,所以无论我将它们放在路由文件中的哪种方式,一个不会工作。
如何让它们同时工作,以便注册控制器仅覆盖“编辑”和“更新”操作,而 omniauth_callbacks 控制器处理身份验证?
谢谢