1

我正在使用 Spine.Stack,我正在尝试找到在编辑页面结束创建新记录的最佳方式。站点上的 spin/rails 示例显示 @navigate 返回到索引列表,但我需要在编辑页面上结束我刚刚创建的记录。目前我有

item = WorkRequest.fromForm(e.target)
if item.save()
  @navigate '/work_requests', item.id, 'edit' if item 

现在这确实出现在编辑页面上,但是因为模型是 Ajax 模型,所以它保存到服务器并获取服务器端 ID,但此时我调用@navigateitem.id 是客户端 ID(c-## )。因此,我最终到达的 URL/work_requests/c-##/edit没有服务器端等效项。

据我所知,我有两个选择

  1. 等待 Ajax 响应,然后导航到使用服务器生成的 ID 进行编辑
  2. 调用导航,但在 Ajax 保存响应后更新 URL(当编辑表单使用服务器端 ID 重新呈现时。

选项 2 似乎最符合非阻塞界面的精神,但我需要确保如果用户在此期间执行任何操作,ID 都会自行解决。选项 1 似乎更安全,但确实会强制用户等待保存完成,然后才能对其进行编辑。

作为旁注;立即编辑的原因是创建一个或多个子项目(如发票上的行),这些都使用嵌套资源路径/work_requests/:id/work_request_lines

非常感谢任何帮助,欢呼。

4

0 回答 0