私はSpine.Stackを使用しており、作成される新しいレコードの[編集]ページに到達するための最良の方法を見つけようとしています。このサイトのspine/railsの例では、@ 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
は、サーバー側に相当するものがありません。
私が見る限り、私には2つの選択肢があります
- Ajaxが応答するのを待ってから、サーバーで生成されたIDで編集するためにナビゲートします
- ナビゲートを呼び出しますが、Ajax保存が応答したら(編集フォームがサーバー側IDで再レンダリングされたときに)URLを更新します。
オプション2は、ノンブロッキングインターフェイスの精神で最も優れているように見えますが、ユーザーがその間に何かをした場合、IDがすべて自分で整理されることを確認する必要があります。オプション1の方が安全に思えますが、ユーザーは保存が完了するのを待ってから編集できるようになります。
補足として; すぐに編集する理由は、1つ以上の子アイテム(請求書の行など)を作成するためであり、これらはすべてネストされたリソースパスを使用します/work_requests/:id/work_request_lines
どんな助けでも大歓迎です、乾杯。