JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources

jsonapi_resource should use relationship.class_name instead of relationship_name

Aperta
#1,118 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Ruby
Stelle
2.3k
Fork
546
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dalle definizioni delle relazioni nell’issue e segui il modo in cui la route della risorsa correlata kudos-received seleziona il proprio controller. Confronta il nome della relazione con class_name e model_name, quindi decidi se il routing predefinito debba usare il nome del modello o supportare un override del controller a livello di relazione; il lavoro è completato quando la route generata punta al controller mm/kudos previsto senza interrompere il comportamento esistente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
rails, ruby
Ambito
api, backend
Tipo di issue
Bug
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.