# Refreshing model on multiple requests same url

**URL:** <https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928>\
**Category:** Ember CLI\
**Created:** [October 7, 2015, 2:21pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928 "2015-10-07T14:21:06Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![kgish](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kgish/32/13333_2.png) [@kgish](https://discuss.emberjs.com/u/kgish)\
**Post date:** [October 7, 2015, 2:21pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/1 "2015-10-07T14:21:06Z")

</div>

I want to use a remote service that exposes an api for returning a random item, something like this:

```auto
http://remote-service.com/api/v1/items/random

```

However, from within Ember I cannot get the model to refresh and make an additional request to pick up the newer results.

I’ve tried various things, including:

```auto
model.refresh();
transitionToRoute('items.random');

```

but this doesn’t seem to work either.

Is there an easier more elegant manner to achieve this that I am overlooking?

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [October 7, 2015, 5:27pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/2 "2015-10-07T17:27:25Z")

</div>

Does reload not do the job?

> **[Model - 4.6 - Ember API Documentation](https://api.emberjs.com/ember-data/release/classes/Model)**
>
> Base class from which Models can be define.

---

<div class="post-metadata">

**Author:** ![kgish](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kgish/32/13333_2.png) [@kgish](https://discuss.emberjs.com/u/kgish)\
**Post date:** [October 7, 2015, 5:56pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/3 "2015-10-07T17:56:58Z")

</div>

Sure, if I hit `F5` (refresh browser) it works fine.

Only using the button with action doesn’t ☹

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [October 7, 2015, 5:59pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/4 "2015-10-07T17:59:33Z")

</div>

I mean the reload method 😉

---

<div class="post-metadata">

**Author:** ![kgish](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kgish/32/13333_2.png) [@kgish](https://discuss.emberjs.com/u/kgish)\
**Post date:** [October 7, 2015, 6:21pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/5 "2015-10-07T18:21:10Z")

</div>

Yes, as I said in the original message (I meant `model.reload()` sorry). Here’s a code sample:

```auto
actions: {
  ...
  random: function() {
    var model = this.get('model');
    if (model) {
      var _this = this;
      model.reload().then(function(model){
         _this.transitionToRoute('entries.random');
      });
    }
  },
  ...
}

```

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [October 7, 2015, 6:29pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/6 "2015-10-07T18:29:12Z")

</div>

😉 Not sure but `this.controller.get('model').reload()` seems better. You need to reload the data on the controller.

---

<div class="post-metadata">

**Author:** ![kgish](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/kgish/32/13333_2.png) [@kgish](https://discuss.emberjs.com/u/kgish)\
**Post date:** [October 7, 2015, 6:57pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/7 "2015-10-07T18:57:14Z")

</div>

That’s not going to work because the action is being handled from within the controller already and NOT within the route, any other ideas?

---

<div class="post-metadata">

**Author:** ![broerse](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/broerse/32/9497_2.png) [@broerse](https://discuss.emberjs.com/u/broerse)\
**Post date:** [October 7, 2015, 7:53pm UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/8 "2015-10-07T19:53:18Z")

</div>

Not much ideas. Do you use `setupController` on the route? I remember reading [this](https://github.com/emberjs/ember.js/issues/2904) and perhaps your model is also not fetched.

---

<div class="post-metadata">

**Author:** ![varblob](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/varblob/32/10304_2.png) [@varblob](https://discuss.emberjs.com/u/varblob)\
**Post date:** [October 8, 2015, 2:50am UTC](https://discuss.emberjs.com/t/refreshing-model-on-multiple-requests-same-url/8928/9 "2015-10-08T02:50:26Z")

</div>

To me requesting a random item seems to fit better with `store.query` as opposed to refreshing a model.
