【发布时间】:2020-12-22 01:03:24
【问题描述】:
我将设计与自定义控制器(用户控制器)一起使用。与其登录并转到user/edit,我更喜欢提供主页。为此,我需要编辑设计会话创建控制器方法。
我知道我可以按照设计提供的说明编辑设计自定义控制器:
# 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 "/" 而不是它当前正在做的事情?
注意here 的当前行为:
self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
yield resource if block_given?
respond_with(resource, serialize_options(resource))
另外请注意,我可以直接从 github 上的设计中复制该代码,然后对其进行编辑,如下所示:
self.resource = resource_class.new(sign_in_params)
clean_up_passwords(resource)
yield resource if block_given?
redirect to: "/"
但我想使用super 方法来执行此操作,因为这是设计说明中推荐的。
【问题讨论】:
-
你试过after_sign_in_path_for设计助手吗?
标签: ruby-on-rails ruby devise ruby-on-rails-6