class CustomSessionsController < DeviseTokenAuth::SessionsController
def create
binding.pry
super
confirmed = true
binding.pry
if current_user.present? && confirmed
render json: { message: "removed" }, status: :ok ("won't render")
else
redirect_to new_user_session_url ("won't render")
end
end
def destroy
super
end
private
def after_sign_in_path_for(user)
redirect_to new_user_session_url
end
end
是否有可能阻止 super 渲染,以便其他渲染可以工作?
我已经按照设计建议尝试了 after_sign_in_path_for,但我仍然不断收到双重渲染错误。
类似于这篇文章。
尝试设置 flash.now(:notice) = 'x' 或 flash[:warning] = 'y' 以获得正常渲染结果上的 flash[:notice]。
您可以将代码从
Devise::SessionsController
复制到此文件,然后从中删除渲染方法。然后你可以根据你的流程用你的渲染方法替换它。
你要做的是在这里复制超级代码并对其进行更改。代替 super 被调用,替换的代码将被执行。