JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

Polymorphic association doesn't use model_name

Offen
#382 6 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Type: Bug
Vorherrschende Sprache
Ruby
Sterne
2.3k
Forks
546
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

I have the following (simplified) setup:

class User < ActiveRecord::Base;
class Member < ActiveRecord::Base;

class MemberResource < JSONAPI::Resource
  model_name 'User'
end

class BookResource < JSONAPI::Resource
   has_one :author, polymorphic: true  # type is 'Member' here
end

class AuthorResource < JSONAPI::Resource; end

When I tried to request GET /books/:book_id/author JR will load Member from members table and not users as it's described with model_name.

Would say it's a bug?

I know that my use case is a little bit complex, but in that simplified example we decide to show User as Member in the API (we have different model names).

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginnen Sie damit, den Pfad GET /books/:book_id/author für die polymorphe author-Association von BookResource nachzuverfolgen und ihre Typauflösung mit dem model_name 'User' von MemberResource zu vergleichen. Reproduzieren Sie das Beispiel mit User, Member, MemberResource und BookResource. Überprüfen Sie anschließend, dass die Association zu users statt zu members aufgelöst wird, während die API-Ressourcennamen erhalten bleiben.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rails, ruby
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.