如何在Ember中控制rails资源路由选项?

时间:2015-08-13 08:10:37

标签: ruby-on-rails ember.js ember-data

在Rails中,我添加了[GET] /photos/untagged路由。

工作正常。

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");
  }
});

我该如何解决这个问题?

感谢。

1 个答案:

答案 0 :(得分: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});
  }
});