2011-07-27 11 views
4

だから私は、ネストされたリソースが含まれていRails 3.1アプリがあります。backbone.jsのネストされたリソースを定義するにはどうすればよいですか?

:私は今、単に、新しいネストされたタスクを作成することができます

var Task = Backbone.Model.extend({url:'/projects/1/todos/20/tasks'}) 

:私はのように私のbackbone.jsモデルを定義している

resources :projects do 
    resources :todos do 
    resources :tasks 
    end 
end 

task.set({description:"This is backbone.js created task!!!"}) 
task.save() 

これはかなり素晴らしいです。

ただし、project/:project_id/todos/:todo_id/tasksのURLをハードコードしています。 もちろん、私はこれを動的に生成することができますが、より良い方法があるかどうかは疑問でした。

ありがとうございます。

+0

この答えを見て、それが助けかどうかを確認: http://stackoverflow.com/questions/6734789/backbone-set-collection-attribute-for-the-url/6735023#6735023を –

答えて

5

Backbone.Model.extendは、オブジェクトではなくサブクラスを作成するために使用されるため、静的URLで新しいクラスを作成し、それをインスタンス化すると、物事を進めるのに特に厄介な方法のようです。このような問題については

、私はあなたがバックボーンのクラスとして構造の並列セットを定義し、Projectオブジェクトは、その関連ToDoTaskすべてのオブジェクトに自身をアップロード持つことを可能にする、Backbone Relationalの非常に好きです。 Projectは、クライアントに送信してクライアントから受信するRESTfulな「粗い文書」としてのみ送信されます。バックボーンはこの特定のモデルを完全にサポートしているため、RESTの説明はThe Richardson Maturity Modelを参照してください。

もう1つの方法は、変更メッセージをSOAPとして送信することですが、これはBackboneの内部同期方法のハッキングと理解を必要とします。

関連する問題