2015-08-13 52 views
1

在Rails中,我添加了[GET] /photos/untagged的路线。如何控制Ember中的rails资源路径选项?

它工作正常。

resources :photos do 
    collection do 
    get :untagged 
    end 
end 

但是,我无法在Ember中检索。

Ember可能会将此响应解析为对象。不是数组。我认为它在Ember中的冲突show行动。我不想使用查询参数/photos?query=untagged

export default Ember.Route.extend({ 
    model: function() { 
    return this.store.find("photo", "today"); 
    } 
}); 

我该如何解决这个问题?

谢谢。

回答

0

不要使用这样的find,它用于通过id返回单个记录。取而代之的是简单的解决方案是重写urlForQuery

export default Ember.RESTAdapter.extend({ 
    urlForQuery(query, modelName){ 
    if(query.untagged){ 
     delete.query.untagged 
     return this._super(query, modelName) + '/untagged'; 
    } 
    return this._super(query, modelName); 
    } 
}); 

然后使用它:

export default Ember.Route.extend({ 
    model() { 
    return this.store.query("photo", {untagged: true}); 
    } 
});