0

これは私には問題のように見えます。バックボーンが機能する通常の方法は、同じURLとGET、POST、PUT、およびDELETEを使用することです。しかし明らかに:

1)メソッドを除くすべてPOSTのメソッドには、URLまたはリクエスト本文のいずれかにIDが必要です

2)DELETEリクエストに本文を含めることができないか、一部のサーバーが本文を無視する

model.destroy()では、URLにIDが必要な場合など、Backboneをハックすることなく、RubyonRailsサーバーアプリがBackboneで正常に動作するとするにはどうすればよいでしょうか。そして、私たちのRoR開発者が私に言っているように、PUTのルートを実行する通常の方法は、URLにIDも含めることです。

4

2 に答える 2

2

バックボーンのデフォルトの動作を利用するには、5つのルートを実装する必要がありますsync。リソースuserの場合、それらは次のとおりです。

GET /user/        // Get a list of users
GET /user/:id     // Get a single users by id
POST /user/       // Create a new user
PUT /user/:id     // Update an existing user by id
DELETE /user/:id  // Delete an existing user by id

私はRubyonRailsにあまり精通していませんが、彼らのドキュメントを一瞥すると、次のようなものでこの仕様を満たすことができます。

match "/user/" => "users#all", :via => :get
match "/user/:user_id" => "users#one", :via => :get
match "/user/" => "users#create", :via => :post
match "/user/:user_id" => "users#update", :via => :put
match "/user/:user_id" => "users#delete", :via => :delete
于 2012-05-11T22:09:05.437 に答える
1

RoRで動作するためにBackboneをハックする必要はありません。バックボーンは、どのURLとどのメソッドを使用すべきかを(ある程度)知るのに十分賢いです。

たとえば、モデルの初期フェッチの場合、urlを「/ tasks」に設定すると、「/ tasks/id」に対してGETリクエストが実行されます。そのモデルを変更してmodel.saveを呼び出すと、「/ tasks/id」に対してPUTリクエストが実行されます。model.destroyを呼び出すと、DELETEリクエストが送信されます(本文は空です)

考慮しなければならないことの1つは、CSRFトークンです。Gemfileにバックボーンレールを含めることをお勧めします。Rails/Backboneの統合に役立つJavaScriptがいくつか含まれています。

于 2012-05-11T22:13:09.027 に答える