JSONAPI-Resources / JSONAPI-Resources/jsonapi-resources
has_one SQL not using LIMIT when using include
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
I have the following model:
class Foo < ActiveRecord::Base
has_many :messages
has_one :last_message, -> { order(created_at: :desc) }, class_name: 'Message'
end
and following resource:
class FooResource < JSONAPI::Resource
has_one :last_message, class_name: 'Message'
end
When I request /foo/1/last-message it generates the following SQL:
SELECT `messages`.* FROM `messages` WHERE `messages`.`foo_id` = 1 ORDER BY `messages`.`created_at` DESC LIMIT 1
But when I request /foo/1?include=last-message, the SQL doesnt append LIMIT
SELECT `messages`.* FROM `messages` WHERE `messages`.`foo_id` IN (1) ORDER BY `messages`.`created_at` DESC
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Riproduci le due richieste mostrate nell’issue e confronta l’SQL generato per la relazione diretta e la relazione inclusa. Segui il punto di ingresso del caricamento dell’include per trovare dove viene applicato lo scope has_one, quindi verifica che la query inclusa mantenga il limite a un singolo record e l’ordinamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- rails, ruby
- Ambito
- api, backend
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100