2016-04-08 6 views
1

İyonik çerçeve kullanıyorum ancak soru AngularJS ile ilgilidir. Raylarda ruby ​​üzerine json api yazdım. Kimlik doğrulaması için ng-token-auth + devise-token-auth'u seçiyorum.AngularJS, kullanıcı ile ilgili verileri şu adresten alabilir: JSON API

Kullanıcı json: yanıt olarak

class UserSerializer < ActiveModel::Serializer 
    attributes :id, :name, :email,:current_sign_in_at, 
       :last_sign_in_at, :created_at 
    has_many :friends, through: :friendships 
end 

Geçerli kullanıcı nesnesi: kullanıcı için

{ 
    "data": { 
    "id": "1", 
    "type": "users", 
    "attributes": { 
     "name": "User1", 
     "email": "[email protected]", 
     "current-sign-in-at": "..", 
     "last-sign-in-at": "..", 
     "created-at": ".." 
    }, 
    "relationships": { 
     "friends": { 
     "data": [ 
       { 
        "id": "2", 
        "type": "users" 
       } 
     ] 
     } 
    } 
    }, 
    "included": [ 
    { 
     "id": "2", 
     "type": "users", 
     "attributes": { 
     "name": "User2", 
     "email": "[email protected]", 
     "current-sign-in-at": "..", 
     "last-sign-in-at": "..", 
     "created-at": ".." 
     }, 
     "relationships": { 
     "friends": { 
      "data": [ ] 
     } 
     } 
    } 
    ] 
} 

Benim serileştirici benim sorunum

{"success":true,"data":{"id":1,"provider":"email","uid":"0a56bb6b-dc72-4ef3-906e-1c17cb2fef46","name" 
:"User1","nickname":null,"image":null,"email":"[email protected]"}} 

yok, ben kullanıcıyı ulaşamaz ilişki bilgisi.

Nedenini bilmiyorum, ama görünümümdeki nesne adı kullanıcı (current_user değil) ve denetleyicilerimde buna erişim yok. Soru, bu nesneden bazı ek bilgilere ve denetleyiciler için geçerli kullanıcı nesnesi erişiminin nasıl sağlanacağına dair sorularım olabilir.

cevap

0

Bunu çözdüm, bu yüzden cevap gerçekten çok basit. ng-token-auth geçerli kullanıcı olarak $rootScope.user sağlar ve kontrolörlerde kullanılabilir. Ancak, kullanıcı nesnelerine ilgili verileri nasıl sağlayacağımı bilmiyorum, neyse ki ihtiyaçlar için geçici bir çözüm buldum.