如何在Spine堆栈中的New之后导航到Edit路径

时间:2012-05-02 12:17:12

标签: ajax ruby-on-rails-3 spine.js

我正在使用Spine.Stack,我正在尝试找到最好的方法来结束编辑页面上创建的新记录。网站上的脊椎/轨道示例显示@navigate返回索引列表,但我需要在编辑页面上结束我刚刚创建的记录。目前我有

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

现在这最终会出现在编辑页面上,但由于模型是Ajax,它会保存到服务器并获取服务器端ID,但在我调用@navigate时,item.id是客户端ID(c - ##)。因此,我最终得到的URL是/work_requests/c-##/edit,没有相应的服务器端。

据我所知,我有两个选择

  1. 等待Ajax响应,然后导航到使用服务器生成的ID进行编辑
  2. 调用导航,但在Ajax保存响应后更新URL(当使用服务器端ID重新呈现编辑表单时。
  3. 选项2在非阻塞界面的精神中似乎是最好的,但我需要确保如果用户在此期间做任何事情,那么ID将全部排除。选项1似乎更安全,但会强制用户等待保存完成后再进行编辑。

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

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

0 个答案:

没有答案