我有一个Rails应用程序,我希望以特定的顺序向用户提供一系列问题。除非他回答了上一个问题,否则用户无法继续处理下一个问题。
以下是我需要帮助实现高效实施的一些设计问题:
要为用户提取问题列表,我需要付出昂贵的代价 db调用。对于新会话,如果获取列表,我只想要 用户以特定顺序查看问题 第一个问题。如果用户尝试了一些问题 一个过去的会议,他将跳到他最后离开的问题。怎么样 有效地实施它?我相信我需要在这里缓存。
在渲染视图时:
如何渲染此功能的视图?我可以有一个控制器 最初的问题模板。当用户尝试问题时,应该 我有问答选项文本更新与AJAX?我一定要吗 使用jquery用于此目的或任何Rails帮助程序可以在这里提供帮助吗?
任何设计帮助,rails功能 - 我可以使用的宝石都会受到欢迎。
答案 0 :(得分:1)
我的回答并非特定于Ruby on Rails,但它应该仍然有用。
首先,我不会加载您可能不会提前使用的数据。如果您有10个问题,并且您一次只显示一个问题,那么我只需加载第一个问题,然后在用户完成第一个问题后,继续加载第二个问题。无需加载所有十个,因为用户可能永远不会问到问题10。
假设用户过早离开,您可以拨打AJAX电话,从中断的地方继续。
我同意你应该缓存这些问题。
这些步骤如下:
通过这种方式,您可以使用用户/登录信息进行AJAX调用以从上次停止的位置进行调用。我想这会使你的数据库调用更便宜。