Obiekty poboczne z niestandardowymi nazwami klas w EmberJS z Railsami + aktywnymi_serializatorami modelu

Mam kilka modeli w Railsach, które wyglądają mniej więcej tak:

class Issue < ActiveRecord::Base
  belongs_to :reporter, class_name: 'User'
  belongs_to :assignee, class_name: 'User'
  has_many :comments
end

class User < ActiveRecord::Base
end

class Comment < ActiveRecord::Base
end

z serializatorami w ten sposób:

class IssueSerializer < ActiveModel::Serializer
  attributes :id
  embed :ids, include: true

  has_one :reporter, :embed => :ids
  has_one :assignee, :embed => :ids
end

class UserSerializer < ActiveModel::Serializer
  attributes :id, :name
end

class CommentSerializer < ActiveModel::Serializer
  attributes :id, :body
end

Daje to JSON, który wygląda mniej więcej tak:

{
  "issues": [
    {
      "id": 6,
      "reporter_id": 1,
      "assignee_id": 2,
      "comment_ids": [
        3
      ]
    },
  ],
  "comments": [
    {
      "id": 3
      "body": "Great comment"
    }
  ],
  "reporters": [
    {
      "id": 1
      "name": "Ben Burton"
    }
  ],
  "assignees": [
    {
      "id": 2
      "name": "Jono Mallanyk"
    }
  ]
}

Problem polega na tym, że pobrane z boku reporterów i cesjonariuszy obiekty JSON nie są rozpoznawane przez Embera jako obiekty użytkownika i widzę następujący błąd:

Uncaught Error: assertion failed: Your server returned a hash with the key reporters but you have no mapping for it

Nie chcę usunąć

embed :ids, include: true

z mojego IssueSerializer, ponieważ wtedy komentarze nie będą serializowane.

Jest kilka potencjalnych sposobów rozwiązania tego, o czym myślałem:

Jeśli metoda embed dla ActiveModel :: Serializer zaakceptowała listę modeli w swojej opcji include, może to filtrować odpowiedź JSON tak, aby zawierała tylko komentarze załadowane z boku.Model danych Embera może być skonfigurowany tak, aby odciążyć użytkowników od „użytkowników”, „reporterów” i „cesjonariuszy” ... ale o ile wiem ze źródła, wydaje się, że obsługuje tylko jeden klucz dla sideloadAs.Jakoś zignoruj ​​/ wyłącz błędy błędów ładowania nieznanych kluczy (prawdopodobnie najmniej rozsądne podejście).

Czy brakuje mi innej opcji? Myślę, że będę musiał napisać poprawkę i przesłać żądanie ściągnięcia do rails-api / active_model_serializers, emberjs / data lub obu.

EDYTOWAĆ: Moje tymczasowe obejście tego problemu polega na zmianie IssueSerializer, aby tylko serializować identyfikatory dla reportera i cesjonariusza:

class IssueSerializer < ActiveModel::Serializer
  attributes :id, :reporter_id, :assignee_id
  embed :ids, include: true

  has_many :comments, :embed => :ids
end

questionAnswers(3)

yourAnswerToTheQuestion