JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

jsonapi_resource should use relationship.class_name instead of relationship_name

Offen
#1,118 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

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

Beschreibung

We have models Contractor and Mm::Kudo and corresponding resources.

class ContractorResource < JSONAPI::Resource
  model_name 'Coworker'
  attributes :name, :uid, :avatar_url

  has_many :kudos_given, class_name: 'Mm::Kudo'
end

class Mm::KudoResource < JSONAPI::Resource
  model_name 'Mm::Kudo'
  attributes :value, :tags, :comment

  has_one :giver, class_name: 'Contractor'
end

And generate route for kudos-received relation points to kudos#get_related_resources controller instead of mm/kudos#get_related_resources (btw.: includes work fine)

There two options:

  1. leave the default behaviour as it is and allow to overwrite controller at relationship level

e.g.: for the given example

  has_many :kudos_given, class_name: 'Mm::Kudo', controller: 'mm/kudos'

and pass the relationship params to the jsonapi_related_resources

  1. use model_name to generate path for default controller (and still allow to overwrite controller at the has_many definition

Which option should we pick and adopt

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

Untersuche zunächst die Beziehungsdefinitionen im Issue und verfolge, wie die Route für die zugehörige Ressource kudos-received ihren Controller auswählt. Vergleiche den Beziehungsnamen mit class_name und model_name, und entscheide dann, ob das Standard-Routing den Modellnamen verwenden oder eine Controller-Überschreibung auf Beziehungsebene unterstützen sollte; als erledigt gilt die Aufgabe, wenn die generierte Route auf den vorgesehenen mm/kudos-Controller zeigt, ohne bestehendes Verhalten zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
rails, ruby
Bereich
api, backend
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

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