私はCitiesを持つアプリを持っています。私は、AJAXリクエストを介して都市レコードを検索、初期化、および作成できるように、RESTfulにコントローラを構築する方法に関するいくつかの提案を探しています。例えば:Rails:RESTful検索、初期化、作成
- は、そのような都市があるかどうかを確認するために、「パリ、フランス」
- アプリのチェックをこの場所のような
city_name
- ユーザーが市の名前を入力するテキストフィールドを、考えますデータベースがすでにある
- ある場合は都市オブジェクトを返します
- 「パリ」と国「フランス」で初期化された新しいレコードが返され、ユーザーに希望することを確認するメッセージが表示されますこの街をデータベースに追加する
- ユーザーが「はい」と答えると、レコードが保存されます。そうでない場合、レコードは破棄され、フォームはクリアされます。今
、私の最初のアプローチは、cities_path
にAJAXポストは、既存の都市を返すか、それを作成し、それを返すのいずれかにつながるように、find_or_create
を使用するために作成します。アクションを変更することでした。
これはうまくいきます...しかし、文字列入力、検索、その他の初期化と復帰を行い、生成されたレコードが正しいことをユーザが確認した場合にのみ作成するコントローラアクションを設定する方が良いでしょう。理想的なシナリオでは、これをすべて1つのアクションに入れて、AJAXリクエストがそのURLに移動し、サーバーがJSONオブジェクトで応答し、javascriptがそこから処理できるようになります。私は、すべてのユーザインタラクションロジックのクライアント側を維持し、これを達成するために必要なリクエストの数を最小限に抑えたいと思います。
これを達成する最もクリーンで最もRESTfulな方法についてのご意見はありますか?
明確にする:私はfind_or_initialize_by_' 'の存在を知ってる、私は上の提案を探していますと、コントローラのアクションが使用するものですできるだけ清潔で安らかなものにするためにどのような行動をとるべきか。ありがとう! – Andrew