Ember.js在一个命名空间中有不同的资源

时间:2013-03-21 21:34:11

标签: javascript ember.js ember-data ember-router

干杯!我必须在rails后端的一个命名空间中使用不同的资源:

  namespace :api, defaults: { format: :json } do
    resources :users, only: [:show] do
      collection do
        get 'profile'
      end
    end
    resource :music, only: [], controller: 'music' do
      collection do
        get 'search'
      end
    end
  end

有没有办法在我的rest_adapter中分隔命名空间'api / users'和'api / music'?

Bandyard.CustomAdapter = DS.RESTAdapter.extend({
  bulkCommit: false,
  url: "http://bandyard.dev",
  namespace: 'api/users'
});

如果我需要从'api / music'路径中抓取json怎么办?

1 个答案:

答案 0 :(得分:2)

  

如果我需要从' api / music'中抓取json怎么办?路径?

您应该将您的ember适配器命名空间设置为“api”#。 Ember数据的REST适配器将添加' / music'或者' / users'它基于模型的名称。

有关默认命名约定的详细信息,请参阅the rest adapter guide

  

我需要抓住资源'个人资料'来自' host / api / users / profile'并且'搜索'来自' host / api / music / search'。如果我将适配器的命名空间设置为“api”,那就是#ap;'它会抓住' profile'资源来自' host / api / profiles'

要自定义特定型号的端点,请考虑覆盖适配器上的 buildURL method 。请参阅问题 How to override the URL for a single model in RestAdapter

您可能还会发现此提示请求有用: Expose buildURL suffix parameter in findQuery, filter