2012-04-24 5 views
1

나는 할 일 목록과 매우 유사한 식료품 점 목록 응용 프로그램을 만들고 있습니다. 몇 년 동안 Rails 개발 경험을 쌓았지만 모든 예제에서 무엇을 컬렉션에 넣고 모델을 만들지는 모르는 데 어려움을 겪고 있습니다.백본 모델 구조

Sinatra 및 Redis를 백엔드로 사용하여 앱을 조롱했습니다. 내 목표는 Sinatra를 단순한 API로 만들고 모든 관점을 백본에서 관리하도록하는 것입니다.

현재 식료품 점 목록은 일련의 문자열 항목이있는 단지 복잡한 ID입니다. 그래서 같은 :

/lists/asdfasdf34asdf => ["eggs", "bacon", "milk"] 

나는 모델은 "항목"다음 컬렉션은 "목록"것, 백본에 만들 것 이동, 또는 뭔가 다른 것입니까?

내 경로가 고전적이지 않을 것 같아요. 그래서 어쩌면 그게 내가 어디서해야 할지를 결정하는 데 어려움을 겪고있는 이유입니다.

답변

2

식료품 목록이 하나만있는 경우 Model 개의 Collection이 적합 할 것입니다. 백본 (backbone)은 사물이 어떻게 구성되어 있는지에 대해 지나치게 규범 적이지는 않지만 논리적 인 방식으로 각 모델/컬렉션의 url 속성을 확실히 설정하려고합니다.

var app = { 
    item: Backbone.Model.extend({ 
    // define an item model to go in the itemCollection 
    }), 
    itemCollection: Backbone.Collection.extend({ 
    initialize: function (key) { 
     this.key = key; 
    }, 
    model: app.item, 
    url: function() { 
     return 'lists/' + this.key + '/items/' 
    } 
    }) 
} 

을하고이 라인을 따라 응용 프로그램의 각 버전의 인스턴스 : 당신은 같은 것을 할 수

var userListKey = 'foobar', 
    userCollection = new app.itemCollection(foobar); 

// proceed with app. Requests for userCollection will now be 
// directed to /lists/foobar/items 

가이 작업을 수행하는 다른 많은 방법이있다, 그러나 희망이 시작이입니다.

+0

끔찍한 답변입니다. 의견을 보내 주셔서 감사합니다! – user577808

+0

내기를 걸었습니다. 행운을 빕니다! – rjz