Ember.js разные ресурсы в одном пространстве имен
Ура! У меня есть разные ресурсы в одном пространстве имен на моей стороне рельсов:
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
Есть ли способ разделить пространства имен 'api/users' и 'api/music' в моем rest_adapter?
Bandyard.CustomAdapter = DS.RESTAdapter.extend({
bulkCommit: false,
url: "http://bandyard.dev",
namespace: 'api/users'
});
Что делать, если мне нужно взять JSON с пути "API / музыка"?
1 ответ
Что делать, если мне нужно взять JSON с пути "API / музыка"?
Вы должны просто установить пространство имен вашего адаптера ember просто на "api". REST-адаптер Ember data добавит к нему "/ music" или "/ users" в зависимости от названия модели.
См. Руководство по остальным адаптерам для получения подробной информации о соглашениях по именованию по умолчанию
Мне нужно получить ресурс 'profile' из 'host / api / users / profile' и 'search' из 'host/api/music/search'. Если я установлю для пространства имен моего адаптера значение "api", он получит ресурс "profile" из "host / api / profile".
Чтобы настроить конечную точку для конкретной модели, рассмотрите возможность переопределения любого метода buildURL на вашем адаптере. Смотрите вопрос Как переопределить URL для одной модели в RestAdapter
Вам также может быть полезен этот запрос на извлечение: выставьте параметр суффикса buildURL в findQuery, фильтр