如何在Rails中提交表单之前构建预览功能?

时间:2013-02-26 18:46:53

标签: ruby-on-rails ruby-on-rails-3

我有一个简单的脚手架,我希望用户在提交表单数据之前查看(预览)表单数据。它看起来是相当直接的问题,但令人惊讶的是我无法弄清楚如何做到这一点。我发现this但它看起来有点过时(2010年问题)

是否有可以简化此预览功能的gem或jquery插件?关于如何在rails 3.2.x中做到这一点的任何建议?

由于

2 个答案:

答案 0 :(得分:2)

这实际上取决于您想要包含哪种“预览” - “预览页面”或“渲染片段”:

预览页面是一些服务显示的内容:所有输入的摘要以单独页面的形式显示,并带有“确认”按钮。它不需要javascript或任何花哨的东西 - 只需单击表单页面上的“下一步”,查看仅在一秒钟前输入的数据,然后单击“确认”或“返回编辑”。如果这是你需要的,那么你可以简单地通过创建新的控制器动作(预览?)来完成它,它将使用传递的参数初始化模型(就像“创建”动作一样,但不保存)并生成带有“预览”的模板和单击“确认”后将传递给“创建”操作的隐藏表单。或者,您可以简单地修改“新”表单,以便根据被调用的操作和显示预览来隐藏表单。

第二个选项是“渲染片段” - 它将通过javascript实时更新当前页面的一部分。根据此视图的复杂程度以及在显示模板之前需要执行的操作类型,使用某些javascript插件或向服务器发送请求并获取呈现的部分可能会更好。在前一种情况下,您可以选择非常简单的实现(如this),直至完成专用的解决方案。另一方面,如果您选择在服务器上呈现它,那么带有所有形式参数的简单ajax请求应该足以为您提供可以直接放入DOM元素的HTML输出。

答案 1 :(得分:-1)

我不知道任何可以做到这一点的宝石。

我认为使用jquery显示模态并从数据元素中获取数据是一种简单的方法。