あなたのアプリをRESTfulにするかどうかは、すべてそれに依存します。価格設定コントローラに現在インデックスアクションのみが設定されている場合でも、将来はnew/edit
アクション(価格を追加する)を作成し、対応するcreate/update
アクションを作成することができます。
もちろん、RESTfulにしたくない場合は、必要なメソッドを追加できます。しかし、RESTfulパターンに従うのは良い方法だと思います。このような設計では、セマンティクスが十分に定義され、認識されています。また、コントローラを混乱させることもありません。
ご購入コントローラで行くことにしたのであれば、私は次の操作を行うことができ助言する:
- は、あなたの購入ボタンの宛先として
create
アクションを使用します。
create
アクションには、認証を確認するフィルタbefore_action
を追加します。
- ここでは、サードパーティとのインタフェースがどの程度正確に行われているのかよく分かりませんが、トランザクション/購入に関する重要な情報をデータベースにすべて記録し、サードパーティの購入を実行することをお勧めしますコール。
- 購入の成功または不成功の場合は、第三者に購入コントローラの
update
アクションにリダイレクトするよう依頼することができます。ステップ3の記録を返品情報で更新することができます(回答全体を保存することをお勧めします)また、成功した場合の価格設定ページやエラー処理ページに内部的にリダイレクトされます。
私はそれが唯一の解決策であると言っているわけではありません。しかし、以前の経験から、自分のデータベースに詳細なトランザクションログを保存することは、将来の問題のトラブルシューティングに非常に役立つことを学びました。
したがって、最終的な答えは、別のコントローラーを既存のコントローラーとは正確に一致しないunRESTfulメソッドを追加することよりも優先させることです。
私は新しいコントローラ –