2012-03-24 5 views
2

私は多くのコメントを投稿しており、投稿ページにコメントを表示したいと思います。これはRails 3アプリケーションです。コメントのURLが投稿のURLにネストされているので、基本的には/post/1/commentsのようになります。他のモデルのスコープを持つバックボーンコレクションを作成するにはどうすればよいですか?

問題は、私はこの状況のた​​めにどのようにバックボーンコレクションを作成すべきかわかりません。私はJavaScriptにpost_idは、サーバーを形成し、その後

var Comments = Backbone.Collection.extend({ 
    model: Comment, 
    url: '/post/' + idFromSomewhereElse + '/comments' 
}); 

またはこれを処理するためのより良い方法があるような何かを渡すべきか?のようなものを複数回入れ子にした場合、どうすればいいですか?私はこのアイデアが/forums/1/topics/3/repliesのようなより複雑な関係のためにも拡張することができると思う

// code simplified and not tested 
App.Post = Backbone.Model.extend({ 
    urlRoot: "/posts" 
}); 

App.Comments = Backbone.Collection.extend({ 
    model: Comment, 

    urlRoot: function(){ 
    return this.post.url + "/comments"; 
    }, 

    initialize: function(opts){ 
    this.post = opts.post; 
    } 
}); 

答えて

4

ひとつのアイデアは、デリゲートルートPost親モデルへComments.urlである可能性があります。あなたは、すべてのコレクションからその親までの関係をマンタンの世話をしなければなりません。