Прошло некоторое время, и это может быть невозможно в то время, но вы можете напрямую вызвать метод ajax вашего адаптера:
YourApp.Store.prototype.adapter.ajax(url, action, {data: hashOfParams})
Например:
YourApp.Store.prototype.adapter.ajax('/products', 'GET', {data: {ids: [1,2,3]}})
На ваш вопрос:
YourApp.Store.prototype.adapter.ajax('/people' + id + '/star','POST')
Редактировать - полезно использовать buildURL, особенно если вы установили пространство имен на вашем адаптере:
url = YourApp.Store.prototype.adapter.buildURL('people',id) + '/star'
Edit 2 - Вы также можете получить адаптер с помощью container.lookup('adapter:application')
, что полезно, если у вас нет глобального доступа к приложению (например, модули ES6 / ember-cli)
Edit3 - Вышесказанное относится к устаревшей версии Ember / Ember-CLI.Теперь я определяю эту функцию в микшировании -
customAjax: (method, type, id, action, hash = null) ->
#note that you can now also get the adapter from the store -
#adapter = @store.adapterFor('application')
adapter = @container.lookup('adapter:application')
url = adapter.buildURL(type, id) + '/' + action
hash['data'] = $.extend({}, hash) if hash #because rails
adapter.ajax(url, method, hash).then (result) =>
return result
и называю ее так -
@customAjax('PUT', 'modelClass', modelId, 'nonCRUDActionName', optionalHashOfAdditionalData).then (response) =>
#do something with response