Ruby on rails RubyonRails自动保存表单

Ruby on rails RubyonRails自动保存表单,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在我的一个rails站点上有一个非常广泛的表单,我想知道是否有可能为每次onchange输入动态保存表单。我试图阻止的是,用户花时间填写表单,然后由于连接问题或类似愚蠢的事情而丢失所有更改 有什么建议吗?基本上,我不希望表格必须提交。我只希望表单像Mac OS X中的首选项一样保存(它只保存了“应用”或“保存”按钮) 使用rails 3…谢谢 您可以为每个失去焦点的输入附加一个ajax事件,该事件将调用Controllers update方法 不过,大多数用户会对这种行为感到惊讶,因为这不是网

我在我的一个rails站点上有一个非常广泛的表单,我想知道是否有可能为每次onchange输入动态保存表单。我试图阻止的是,用户花时间填写表单,然后由于连接问题或类似愚蠢的事情而丢失所有更改

有什么建议吗?基本上,我不希望表格必须提交。我只希望表单像Mac OS X中的首选项一样保存(它只保存了“应用”或“保存”按钮)


使用rails 3…谢谢

您可以为每个失去焦点的输入附加一个ajax事件,该事件将调用Controllers update方法


不过,大多数用户会对这种行为感到惊讶,因为这不是网站的预期行为。

如果使用AJAX调用update,那么以下几点可能会有所帮助:jQuery的serialize()函数可以帮助将表单数据收集到post请求中,而无需调用表单提交操作。使用
save(:validate=>false)
将绕过验证,如果您正在保存草稿,并且希望跳过验证直到最终保存。

将给服务器和数据库带来的压力将比更传统的方法高出几个数量级。我也同意凯尔的观点,我会对缺少提交按钮感到非常困惑。至少,每次数据发送到服务器并成功保存时,您都需要通知用户,否则他们将不知道您为什么不要求他们保存

另外,想想所有的开销。每次击键时,用户都必须启动连接,发送HTTP头、cookie、表单内容等


您是否考虑过使用自动保存功能?如果已经做了更改,可能每2分钟保存一次表单,然后在表单上也放置一个提交按钮?我想这会帮你省去很多痛苦,但却能给你带来几乎相同的好处。

这听起来是个不错的选择。关于如何实现这样的东西有什么建议吗?我会设置一个每隔几分钟(通过setTimeout)调用自己的函数。有很多方法可以做到这一点,但最简单的方法可能是设置一个布尔变量来跟踪数据是否已更改。在翻转变量的所有输入上注册更改回调。触发autosave函数后,检查变量是否为true。如果是这样,请向服务器发送AJAX请求,并将变量设置回false。唯一的另一件事是,用户可能会导航离开,但拦截起来很容易。空间不够了,但你明白了。