在 Rails 中构建问卷 - 一次只显示一个字段而不是一长串字段?
Building a questionnaire in Rails - Display only one field at a time instead of a long list of fields?
我正在使用 Rails 创建问卷应用程序。我使用名为 Question 的模型创建了一个脚手架。调查问卷有 30 多个问题,所以当我创建一个新的调查问卷时,我有一长串问题需要回答,这些问题是用表单助手以部分形式生成的。我宁愿一次只显示一个问题,而不是一长串 30 多个问题,但我不确定要使用哪种解决方案。
我研究了使用 gem Will Paginate 一次显示一个问题的可能性。但似乎 Will Paginate 并不是设计用于 form_for 和 post 方法,因此它似乎不是一个合适的解决方案。
然后我试图弄清楚我是否可以使用 AJAX 一次显示一个问题,但我找不到任何文档或示例是 AJAX 被用在表格上来完成这个.
我能想到的最后一个解决方案是针对每个问题使用单独的视图或部分视图,但创建所有这些文件将是一项繁琐的工作,因此也可能不是一个好的解决方案。
解决这个问题的最佳方法是什么?
我会将整个表单加载到页面上,包括所有 30 个问题,但隐藏除第一个问题之外的所有问题,并隐藏提交按钮。当有人回答问题时,将其隐藏(使用 javascript)并显示下一个问题(如果是最后一个问题,则显示提交按钮)。这很简单,因为
a) 你没有做多页表单,这可能有点难以处理,尤其是当你遇到验证错误时。
b) 你不是在和 ajax 胡闹。只是简单地隐藏和显示元素。
c) 因为它们都在同一个页面上,所以很容易进行其他 javascript 增强,例如进度条。
我正在使用 Rails 创建问卷应用程序。我使用名为 Question 的模型创建了一个脚手架。调查问卷有 30 多个问题,所以当我创建一个新的调查问卷时,我有一长串问题需要回答,这些问题是用表单助手以部分形式生成的。我宁愿一次只显示一个问题,而不是一长串 30 多个问题,但我不确定要使用哪种解决方案。
我研究了使用 gem Will Paginate 一次显示一个问题的可能性。但似乎 Will Paginate 并不是设计用于 form_for 和 post 方法,因此它似乎不是一个合适的解决方案。
然后我试图弄清楚我是否可以使用 AJAX 一次显示一个问题,但我找不到任何文档或示例是 AJAX 被用在表格上来完成这个.
我能想到的最后一个解决方案是针对每个问题使用单独的视图或部分视图,但创建所有这些文件将是一项繁琐的工作,因此也可能不是一个好的解决方案。
解决这个问题的最佳方法是什么?
我会将整个表单加载到页面上,包括所有 30 个问题,但隐藏除第一个问题之外的所有问题,并隐藏提交按钮。当有人回答问题时,将其隐藏(使用 javascript)并显示下一个问题(如果是最后一个问题,则显示提交按钮)。这很简单,因为
a) 你没有做多页表单,这可能有点难以处理,尤其是当你遇到验证错误时。
b) 你不是在和 ajax 胡闹。只是简单地隐藏和显示元素。
c) 因为它们都在同一个页面上,所以很容易进行其他 javascript 增强,例如进度条。