2013-07-21 2 views
0

나는 동일한 뷰에서 데이터를 렌더링하려고 시도했으나 어떤 것을 올바르게 얻지 못하는 것 같습니다. 쇼 콘센트 위치의 각 위치에 대한 등급을 렌더링 할 수 있기를 원합니다.Ember와 Rails의 일대 다 관계

다음은 내가 가지고있는 것입니다.

나는 레일즈 컨트롤러에서 다른 것들을 렌더링 할뿐만 아니라 리소스를 위해 다른 경로와 다른 중첩을 시도했다. 올바른 등급의 해시를 다시 얻을 수는 있지만 표시 방법은 모르겠다.

내 레일 컨트롤러 나 Handlebars 뷰에서해야 할 일이 잘못되었다고 생각합니다. 나는 레일스 물건을 게시하지 않았을 정도로 많은 것들을 시도했다. 이 Ember 항목이 올바른 경우 핸들 막대와 레일 컨트롤러를 사용하여 올바르게 렌더링하는 방법은 무엇입니까?

App.Router.reopen 
    location: 'history' 
    rootURL: '/' 

App.Router.map -> 
    @resource 'users', -> 
    @route 'new', 
@route 'edit', 
     path: '/:user_id/edit' 
    @route 'show', 
     path: '/:user_id' 
    @resource 'locations', -> 
    @route 'new', 
    @route 'show', 
     path: '/:location_id' 
    @resource 'ratings', -> 
    @route 'new', 
    @route 'show', 
     path: '/:ratings_id' 

App.Rating = DS.Model.extend(
    rating: DS.attr('string', defaultValue: "-0") 
    description: DS.attr('string', defaultValue: "No Description Provided") 
    location: DS.belongsTo("App.Location") 
) 

App.Location = DS.Model.extend(
    name: DS.attr('string', defaultValue: "") 
    address: DS.attr('string', defaultValue: "") 
    city: DS.attr('string', defaultValue: "") 
    state:DS.attr('string', defaultValue: "") 
    ratings: DS.hasMany('App.Rating') 
    fullAddress: (-> 
    "http://maps.google.com/?q=#{@get('address')},#{@get('city')},#{@get('state')}}" 
).property('address') 
) 


App.Store = DS.Store.extend(
    revision: 11 
    adapter: DS.RESTAdapter.create(mappings: 
    ratings: App.Rating 
) 
) 

답변

0

템플릿, 라우트 또는 컨트롤러가 없으면 거의 말할 수 없습니다.

모델간에 관계가 있기 때문에 템플릿에서 모델을 참조하는 방법은 location.ratings이고 위치는 변수 #each입니다. 이것은 꽤 잘 작동합니다. 평점을 사이드로드 한 경우 즉시 액세스 할 수 있습니다. 또는 서버에서 이러한 등급을 요청할 것입니다.

다른 컨트롤러에서 데이터를 참조하는 또 다른 주요 아이디어는 needs API를 사용하는 것입니다.

needs: 'foo', 
ratingsBinding: 'controllers.foo'