Evolutio
Evolutio

Reputation: 974

emberjs findRecord is not implemented

I try to use the Restadapter from emberjs to call my api under 'http://local.ember.api' but I can't get any data. After some respearch I didn't get it working. Here is my code:

I created a file under app/application with the name adapter.js with this code:

import DS from 'ember-data';
import $ from 'jquery';
import config from '../config/environment';

var ApplicationAdapter;
ApplicationAdapter = DS.RESTAdapter.extend({
    host: 'http://local.ember.api',
    namespace: 'api/v1'
});

var ApplicationSerializer;
ApplicationSerializer = DS.RESTSerializer.extend({});

export default ApplicationAdapter;
export default ApplicationSerializer;

and under app/models I have a user.js with this code:

import Ember from 'ember';
import DS from 'ember-data';

var User = DS.Model.extend({});

export default User;

my app/router.js looks like this:

import Ember from 'ember';
import config from './config/environment';

const Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  this.route('users');
  this.route('user', {path: '/user/:user_id'});
});

export default Router;

and my app/routes/user.js:

import Ember from 'ember';

export default Ember.Route.extend({
  model: function(params) {
    return this.store.find('user', params.user_id);
  }
});

with this setup I get this error:

Error: Assertion Failed: You tried to find a record but your adapter (for test-app@model:user:) does not implement 'findRecord'

when I create a file under app/services with the name store.js and this code:

import Ember from 'ember';
import DS from 'ember-data';

var Store;
Store = DS.Store.extend({});

export default Store;

I get this error:

Error: Assertion Failed: You tried to find a record but your adapter (for test-app@model:user:) does not implement 'findRecord'

when I create a function with the name 'findRecord' in the store.js-File:

Store = DS.Store.extend({
    findRecord: function() {}
});

I get no result. Where is the mistake?

Upvotes: 0

Views: 393

Answers (1)

Pedro Rio
Pedro Rio

Reputation: 1444

I think the problem is that you are calling find on the Store, but the according to the documentation you should be calling findRecord as there is no find. Hence, the error message.

When you create the findRecord method, it's probably being called but since you don't return anything... well you don't get any data back. If you console.log there, it's probably being called.

Edit: I found the line where that error happens in ember-data's source code (although it's from master). But looking at the source code form 1.13.15 it should have the find method and it should give you a warning.

Can you setup an EmberTwiddle that reproduces the issue?

Upvotes: 1

Related Questions