# Ember.Object methods not defined

**URL:** <https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617>\
**Category:** Uncategorized\
**Created:** [November 3, 2014, 5:10pm UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617 "2014-11-03T17:10:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![alexpereda](https://avatars.discourse-cdn.com/v4/letter/a/a9a28c/32.png) [@alexpereda](https://discuss.emberjs.com/u/alexpereda)\
**Post date:** [November 3, 2014, 5:10pm UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/1 "2014-11-03T17:10:16Z")

</div>

I’m trying to setup a model’s method and they are undefined at runtime.

```
  App.SetupCoverRoute = Ember.Route.extend({
model: function(){
            return App.CoverModel.find(176);
        } });

App.CoverModel = Ember.Object.extend({
find: function (id){
    return $.getJSON('/api/cover/' + id).then(function(data) 
    {
        return data;
    });
}})

```

I get an runtime error on the Route, inspection reveals that the find method is undefined.

Any ideas what I could be doing wrong?

Thanks

---

<div class="post-metadata">

**Author:** ![herom](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/herom/32/14642_2.png) [@herom](https://discuss.emberjs.com/u/herom)\
**Post date:** [November 3, 2014, 6:35pm UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/2 "2014-11-03T18:35:50Z")

</div>

In order to be able to call your `find()` method on your `App.CoverModel` you have to use `reopenClass()` so that it is made available on the `prototype` of the “class”:

```auto
App.CoverModel = Ember.Object.extend({});

App.CoverModel.reopenClass({
 find: function (id) {
    return Ember.$.getJSON('/api/cover/' + id);
  }
});

```

Also, I’d recommend that you go through the (well explained) [guides](http://www.emberjs.com/guides) over at the [Ember.js](http://www.emberjs.com) homepage → this one is especially about `Ember.Object` and the concepts behind it: [http://emberjs.com/guides/object-model/classes-and-instances/](http://emberjs.com/guides/object-model/classes-and-instances/)

---

<div class="post-metadata">

**Author:** ![alexpereda](https://avatars.discourse-cdn.com/v4/letter/a/a9a28c/32.png) [@alexpereda](https://discuss.emberjs.com/u/alexpereda)\
**Post date:** [November 4, 2014, 11:06pm UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/3 "2014-11-04T23:06:45Z")

</div>

Thanks.

I was looking at some examples that didn’t use the reopen class. Thanks for the clarification.

---

<div class="post-metadata">

**Author:** ![herom](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/herom/32/14642_2.png) [@herom](https://discuss.emberjs.com/u/herom)\
**Post date:** [November 5, 2014, 5:31am UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/4 "2014-11-05T05:31:02Z")

</div>

If you don’t want to be your `CoverModel` a “real” model but instead just return whatever the server sends, you could also not `extend` but `create` the object, so `find()` is also availble, without using `reopenClass()`

```auto
App.CoverModel = Ember.Object.create({
  find: function (id) {
   return Ember.$.getJSON('/api/cover/' + id); 
  }
});

```

The best place to experiment with Ember.js (in my opinion) is: [http://emberjs.jsbin.com](http://emberjs.jsbin.com)

---

<div class="post-metadata">

**Author:** ![alexpereda](https://avatars.discourse-cdn.com/v4/letter/a/a9a28c/32.png) [@alexpereda](https://discuss.emberjs.com/u/alexpereda)\
**Post date:** [November 5, 2014, 6:06am UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/5 "2014-11-05T06:06:06Z")

</div>

This was my initial intention, to be like a standard object, that is why I was puzzled at the error.

It is making sense.

Just starting with Ember, and it is taking some time, but I’m getting there.

Thanks.

---

<div class="post-metadata">

**Author:** ![herom](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/herom/32/14642_2.png) [@herom](https://discuss.emberjs.com/u/herom)\
**Post date:** [November 5, 2014, 6:51am UTC](https://discuss.emberjs.com/t/ember-object-methods-not-defined/6617/6 "2014-11-05T06:51:33Z")

</div>

No problem - you’re welcome!
