2012-05-11 15 views
0

これは私の問題のようです。バックボーンが動作する通常の方法は、同じURLとGET、POST、PUT、およびDELETEを使用しています。しかし、明らかに:バックボーンJSとRuby on Rails CRUDの問題

1)全てのPOSTが、方法は

2 URLまたはリクエストボディのいずれかでIDが必要)DELETE要求が体を含むことができないか、一部のサーバが、どのようにあなたがしてみましょうを作ることができ、本体

を無視Ruby on Railsのサーバーアプリケーションが、バックボーンをハックする必要なく、バックボーンで正常に動作すると言うと、model.destroy()はURLにIDを持つ必要がありますか?また、RoRの開発者が私に言っているように、PUTのルートを実行する通常の方法は、URLにIDを持つことですか?

答えて

2

バックボーンのデフォルトのsyncの動作を利用するために実装する必要がある5つのルートがあります。リソース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 

私はRuby on Railsのに非常に慣れていないんだけど、あなたのようなもので、この仕様を満たすことができ、そのドキュメントを一瞥:

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 
+1

あなたは 'resource:users'にできることがあり、すべてを得ることができます:http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions –

1

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

たとえば、モデルの最初のフェッチでは、urlに '/ tasks'を設定すると、 '/ tasks/id'に対してGET要求が行われます。そのモデルを変更してmodel.saveを呼び出すと、 '/ tasks/id'へのPUT要求が行われます。 model.destroyを呼び出すと、DELETEリクエスト(空のボディ)が返されます

CSRFトークンを考慮する必要があります。あなたのGemfileにbackbone-railsを含めることをお勧めします。 Rails/Backboneの統合に役立ついくつかのJavaScriptが含まれています。