问题描述
上下文
我是 Rails 应用程序开发的新手,所以如果我遗漏了一些关于在 Rails 中保存/存储状态的明显内容,请告诉我。我在我的应用程序中使用了 Wicked gem引导用户完成医疗评估的应用,该应用包含以下步骤:
- 个人信息
- 一般医疗问题
- 具体疾病问题
- 同意
- 提交
问题
如果用户在评估的某个部分离开以查看应用的另一个页面,或者如果他们不小心关闭了浏览器,他们将丢失所有进度。
我尝试了什么
-
我在每一步都添加了一个保存按钮,用户可以点击保存他们目前输入的信息,离开和回来时,他们会为他们预先填写信息。然而,这不是我正在寻找的 UX,因为用户仍然必须从第一步开始,然后继续单击下一步,直到他们到达上次执行的步骤或使用导航找到该步骤。 我希望向导在他们停止的地方自动打开。
-
我尝试了这种方法,为用户添加了一个名为
:assessment_step
的属性,并在每次用户到达新步骤时更新它,并在用户打开向导时转到该步骤(如果该步骤存在) .这种方法有效,但非常笨拙,根本无法扩展。随着我添加更多步骤和更多向导,这将很难维护。代码如下:class MedicalAssessmentController < ApplicationController include Wicked::Wizard steps :personal_info,:medical_questions,:disease_questions,:consent,:submit def show @user = current_user # default assessment step is 0 @steps = [:personal_info,:submit] case step when :personal_info if @user.assessment_step != 0: jump_to(@steps[@user.assessment_step]) @user.update_attribute(:assessment_step,0) # set the step reached to step 0 when :medical_questions @user.update_attribute(:assessment_step,1) when :disease_questions @user.update_attribute(:assessment_step,2) when :consent @user.update_attribute(:assessment_step,3) when :submit @user.update_attribute(:assessment_step,4) end # DO MORE STUFF render_wizard end end
我读过的东西
我在 SO 或在线任何地方都找不到任何类似的问题。 Wicked gem 文档并没有真正提到任何类似的东西。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)