У меня есть EmberJS фильтр так:EmberJS 2.7, Rails 5, AMS 0.10.2 - ПОЛУЧИ сбор ресурсов, где fieldX = [B или C]
/app/routes/trails/new.js
model: function (filterCurrentEmployees) {
return Ember.RSVP.hash({
trail: this.store.createRecord('trail'),
employees: this.store.query('employee', { status: '1,2'}).then(
function(data) {return data})
})
},
Я надеялся, что status: '1,2'
бы в конечном итоге как обычный Rails пары, так что я мог бы сделать Params [: Status], а затем фильтровать возвращаемые сотрудник (вы знаете, так что дб получит запрос типа 'where status IN ['1','2']'
)
Но когда этот запрос фильтра отправляется в Rails API, я получаю эту ошибку:
ActiveModelSerializers::Adapter::JsonApi::Deserialization::InvalidDocument (Invalid payload ({:data=>"Expected hash"}): {"status"=>"1,2", "controller"=>"employees", "action"=>"index"}):
, которая происходит здесь в контроллере:
апи/приложение/контроллеры/employees.rb
def employee_params
ActiveModelSerializers::Deserialization.jsonapi_parse!(params)
end
но что необходимо для AMS для работы с Эмбер.
Так что я предполагаю, что что-то не так с тем, как я отправляю/создаю запрос в EmberJS?
Кажется, что вы пытаетесь сделать запрос на получение GET. Не уверен, что действительно, и this объясняет, что происходит в конце Rails, но я не знаю, как заставить Ember правильно создать фильтр, чтобы AMS рада принять его.
EDIT - JSON-API Spec Reference
Я был под впечатлением, что AMS и угасающий 2,7 с JSON-API 'просто работать из коробки'. Я фактически ожидал фильтр Ember соблюдать the spec и отправить
/сотрудников? Фильтр = состояние [1,2]
, но это, кажется, не делать этого. AMS говорит то же самое here.
UPDATE
Так с некоторыми указателями с комментариями (спасибо) я узнал, что структура хэш-запроса может быть неправильным. Я также попытался изменить «запрос» на filter
, но затем повышает фактическую ошибку Ember:
API фильтра перенесен в плагин. Чтобы включить store.filter с использованием флага среды или использовать альтернативу, вы можете посетить страницу аддона-фильтра фильтра данных.
Теперь я не знаю, какая разница между запросом Ember и фильтром Ember, возможно, фильтр работает только на клиенте? Кто знает, docs are so sparse и так много вопросов на это 1 или 2 года.
Я думаю, что спецификация говорит? Filter [status] = 1,2. Вы пробовали исправить свой запрос, чтобы он соответствовал спецификации для начинающих? Почему вы считаете, что ALL queryparams следует фильтровать? – user2105103
Спасибо, но я не знаю, о чем вы говорите, я новичок во всем этом – rmcsharry
Мне не нужны ВСЕ сотрудники. Я хочу подмножество, где status = 1,2. Разве это не ясно из вопроса? – rmcsharry