如何用自定义控制器在设计中更改重定向



我使用带有自定义控制器(用户控制器(的设备。与其登录并转到user/edit,我更喜欢提供主页。为此,我需要编辑designsessioncreatecontroller方法。

我知道我可以按照设计提供的说明编辑设计自定义控制器:

# before_action :configure_sign_in_params, only: [:create]
# GET /resource/sign_in
# def new
#   super
# end
# POST /resource/sign_in
# def create
#   super
# end
# DELETE /resource/sign_out
# def destroy
#   super
# end
# protected
# If you have extra params to permit, append them to the sanitizer.
# def configure_sign_in_params
#   devise_parameter_sanitizer.permit(:sign_in, keys: [:attribute])
# end

那么,按照这些说明,我如何简单地让create方法做它目前正在做的事情,而不是redirect_to "/",而不是它现在正在做的?

请注意,这是它目前正在做的事情:

self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
yield resource if block_given?
respond_with(resource, serialize_options(resource))

还要注意的是,我可以直接从github上的design复制代码,然后编辑它,就像这样:

self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
yield resource if block_given?
redirect to: "/"

但我想使用super方法来完成这项工作,因为这是设计说明中推荐的方法。

无需重新定义create操作,因为Devise允许您使用after_sign_in_path_for方法来执行此操作。

def after_sign_in_path_for(resource)
root_path
end

最新更新