我通过爱沙尼亚移动ID系统对识别请求有以下要求:
我有后端工作,但是,我对rails应用程序中的流程感到困惑。我目前在我的控制器中有以下操作:
def id_user
@user = current_user
#create a new object for identification request & call MobileIdServce method to invoke the sending of a request
@identification = MobileIdService.new(current_user).send_request
flash[:notice] = "Control Code: #{@identification[:challenge_id]}"
# on this point i tried both, render and redirect to a separate action
render action: "show"
#redirect_to({ action: 'check_request_status', session_code: @identification[:sesscode] }, notice: "Control Code: #{@identification[:challenge_id]}")
#here starts the request status check
check_request_status(@user,@identification[:sesscode])
end
private
# I also tried to implement this as a separate action before, but i think a private method is more appropriate
def check_request_status(user,session_code)
@user = user
@session_code = session_code
MobileIdService.new(current_user).check_request(@user, @session_code)
end
在这两种情况下(1.两个动作,第一个重定向到第二个,第一个调用私有方法)我有问题,我需要操纵视图以显示控制代码。
如果我完成了该程序,控制代码只会在操作完成后成功显示,作为通知。
关于如何处理这个问题有什么好的做法吗?
我有点深入了解它。我很乐意使用单个结果视图(用户看到控制代码)进行单个操作(用户发送请求),但是从用户体验的角度来看,我不能指望用户主动开始第二个操作,然后单击此处检查您的请求状态"。这需要是自动的。
答案 0 :(得分:0)
我决定采用以下方案。
我目前认为实际运行循环客户端可能是有意义的,因此如果他们想要取消请求,它可以被用户杀死。否则就没有好办法在服务器端杀死循环。
但是,是的,到目前为止一切顺利。