Search code examples
ruby-on-railsember.jsember-dataember-simple-auth

Request from Ember front to Rails back is not happening


I am implementing a front-end in ember 1.13 with a Rails back-end and having the following problem:

After the user is authenticated, I don't seem to be able to retrieve the user's record from the back-end. The browser debugger does not even show a request being made. This is code:

// app/services/session-user.js
import Ember from 'ember';

const { inject: { service }, RSVP } = Ember;

export default Ember.Service.extend({
    session: service('session'),
    store: service(),

    loadCurrentUser() {
      currentUser: {
        var userId = this.get('user_id');
        if (!Ember.isEmpty(userId)) {
          return this.get('store').findAll('user', userId);

        }
      }
    }
});

There is a login controller which handles the authentication. But the code for getting the data is in the applications's route:

// app/routes/application.js
import Ember from 'ember';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';

const { service } = Ember.inject;

export default Ember.Route.extend(ApplicationRouteMixin, {

  sessionUser: service('session-user'),

  beforeModel() {
    if (this.session.isAuthenticated) {
        return this._loadCurrentUser();
    }
  },
  sessionAuthenticated() {
    this._loadCurrentUser();
  },

  _loadCurrentUser() {
    return this.get('sessionUser').loadCurrentUser();
  },

});

For extra measure I am defining the session store:

// app/session-stores/application.js
import Adaptive from 'ember-simple-auth/session-stores/adaptive';

export default Adaptive.extend();

If there are files I should post, please let me know.

Any hints will be highly appreciated as I am rather new to ember. I have spent several hours researching without luck, as things seem to have changed quite a lot throughout versions.


Solution

  • Look at your service code.

        var userId = this.get('user_id');
        if (!Ember.isEmpty(userId)) {
          return this.get('store').findAll('user', userId);
    
        }
    

    I don't see code that you provided in question where you setting up user_id variable. So if user_id not defined then if statement won't get executed because of !.