Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

sort by country that is related to resource not directly but through the third relation is not work properly

Ouverte
#1,409 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
38/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
rails, ruby
Domaine
api, backend, databases

Piste de recherche

Commencez par reproduire GET /destinations?sort=country.name avec les associations entre Routing::Destination, DestinationResource et System::NetworkPrefix présentées dans l’issue. Inspectez le SQL généré et le point d’entrée du join de la relation de tri. C’est terminé lorsque le tri via l’association indirecte avec country ne fait plus référence à la colonne inexistante destinations.country_id et que la requête aboutit correctement.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

This issue is a (choose one):

  • Problem/bug report.
  • Feature request.
  • Request for support. Note: Please try to avoid submitting issues for support requests. Use Gitter instead.

Checklist before submitting:

  • I've searched for an existing issue.
  • I've asked my question on Gitter and have not received a satisfactory answer.
  • I've included a complete bug report template. This step helps us and allows us to see the bug without trying to reproduce the problem from your description. It helps you because you will frequently detect if it's a problem specific to your project.
  • The feature I'm asking for is compliant with the JSON:API spec.

Description

When making a request to a specific API endpoint with the query parameter sort=country.name, the application crashes due to an error in the sorting mechanism. The problem arises because the country relationship does not directly belong to the destination model but rather through another association. This leads to an undefined column error when attempting to perform the sorting operation.

Additional info

class Routing::Destination < ApplicationRecord
  belongs_to :network_prefix, class_name: 'System::NetworkPrefix', optional: true
  has_one :country, through: :network_prefix
end

class Api::Rest::Admin::Routing::DestinationResource < JSONAPI::Resource
  has_one :country, class_name: 'Country', force_routed: true, foreign_key_on: :related
end

class System::NetworkPrefix < ApplicationRecord
  belongs_to :country, class_name: 'System::Country', foreign_key: :country_id, optional: true
end

request that lead to 500 error
GET /destinations?sort=country.name
SELECT "class4"."destinations".* FROM "class4"."destinations"
LEFT JOIN sys.countries AS country_sorting ON country_sorting.id = class4.destinations.country_id
LEFT JOIN class4.rate_groups AS rate_group_sorting ON rate_group_sorting.id = class4.destinations.rate_group_id
ORDER BY country_sorting.name asc, rate_group_sorting.name asc LIMIT $1 OFFSET $2  [["LIMIT", 50], ["OFFSET", 0]]


Internal Server Error: PG::UndefinedColumn: ERROR:  column destinations.country_id does not exist
LINE 1: ...ntries AS country_sorting ON country_sorting.id = class4.des...
                                                             ^

jsonapi-resource version 0.9.12

Langage dominant
Ruby
Étoiles
2.3k
Forks
547
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de JSONAPI-Resources/jsonapi-resources

Toutes les issues de JSONAPI-Resources/jsonapi-resources

Issues similaires

Plus d'issues Ruby

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.