1
votes

When I make a .find call on the store as such:

this.store.find('user', { age: 24 });

It generates the request:

GET /user?age=24

I cannot figure out how to customize the query parameters that are generated from that request. I looked through the source for the RESTSerializer and RESTAdapter, but didn't see anything that would generate that query string.

I would like to have Ember generate something like :

GET /user?details=age eq 24

Instead of the default:

GET /user?age=24

Is this possible?


Links to sources:

DS.Store: https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/system/store.js#L44

DS.RESTAdapter: https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/adapters/rest_adapter.js#L13

DS.RESTSerializer: https://github.com/emberjs/data/blob/v1.0.0-beta.6/packages/ember-data/lib/serializers/rest_serializer.js#L15

1
Then I guess you have to write your own RESTAdapter. - inf3rno
... that is my question. What methods do I override? As I mentioned in my post, I went through the source and didn't see which methods to change. - Mike
Pls link the source in your question. - inf3rno
I don't have my own code yet because I don't know what to overwrite yet, that is my question. - Mike
I mean from here: github.com/emberjs/ember.js - inf3rno

1 Answers

1
votes

Just change your request to this.store.find('user', {details:'age eq 24'});

You'll also need to override pathForType in order to make user singular

App.UserAdapter = DS.RESTAdapter.extend({
  pathForType: function(type) {
    var camelized = Ember.String.camelize(type);
    return camelized; //Ember.String.pluralize(camelized);
  },
});